전체 글 75

5장 합성곱 신경망Ⅰ(+) - 이미지를 255로 나누는 이유(ELLIPSIS 객체, np.newaxis, 다차원 배열 슬라이싱, 255)

1. 이미지 정보를 보여주는 함수 정의 def print_image_summary(image, labels): print('--------------') print('Image Details:') print('--------------') print(f'Image dimensions: {image.shape}') print('Channels:') if len(labels) == 1: image = image[ ... , np.newaxis ] ------ ⓐ for i, lab in enumerate(labels): min_val = np.min(image[:,:,i]) ------ ⓑ max_val = np.max(image[:,:,i]) print(f'{lab} : min={min_val:.4f}, ..

Etc/Deep Learning 2021.08.08

5장 합성곱 신경망Ⅰ(3) 실습 - 특성맵 시각화

1. 새로운 모델 생성 합성곱층, 최대풀링층 쌍을 4개 쌓고, 완전연결층을 순차적으로 쌓음 model = tf.keras.models.Sequential([ tf.keras.layers.Conv2D(input_shape=(100, 100, 3), activation='relu', kernel_size=(5, 5), filters=32), tf.keras.layers.MaxPooling2D(), tf.keras.layers.Conv2D(activation='relu', kernel_size=(5, 5), filters=64), tf.keras.layers.MaxPooling2D(), tf.keras.layers.Conv2D(activation='relu', kernel_size=(5, 5), filters..

Etc/Deep Learning 2021.08.08

5장 합성곱 신경망Ⅰ(3) - 미세조정기법(전이학습), 설명 가능한 CNN

5.3.2 미세 조정 기법 미세 조정 기법이란? 특성 추출 기법에서 더 나아가 사전 훈련된 모델, 합성곱층, 데이터 분류기의 가중치를 업데이트하여 훈련시킴 '사전 학습된 모델'을 목적에 맞게 재학습시키거나 '학습된 가중치의 일부'를 재학습시키는 것 미세 조정하여 분석하려는 데이터셋에 잘 맞도록 모델의 파라미터를 조정하는 기법 (파라미터에 큰 변화줌 → 과적합 발생 가능 ⇒ 정교, 미세한 파라미터 업데이트 必) + 연산량 多 → CPU보단 GPU 사용을 권장 특성 추출 기법 VS 미세 조정 기법 · 특성 추출 기법 : 목표 특성을 잘 추출했다는 전제하에 좋은 성능이 나옴 · 미세 조정 기법 : 특성 추출 기법에서 특성이 잘못 추출되었다면 미세 조정 기법으로 이미지 데이터를 사용해, 네트워크의 가중치를 업데..

Etc/Deep Learning 2021.08.06

5장 합성곱 신경망Ⅰ(2) 실습- 전이학습- 특성 추출 기법(+ 텐서플로 허브)

1단계. 필요한 라이브러리 호출 2단계. 사전 훈련된 모델 내려받기 - 해당 예제에서 사용할 모델 : 사전 훈련된 ResNet50 model = ResNet50(include_top=True, weights="imagenet", input_tensor=None, input_shape=None, pooling=None, classes=1000) ⓐ include_top : 네트워크(사전 훈련된 모델) 상단에 '완전연결층을 포함'할지의 여부를 지정(기본값: True) //완전연결층 : 합성곱층, 풀링층을 거쳐 차원이 축소된 특성맵을 전달받음, 이미지를 3차원 벡터에서 1차원 벡터로 펼침 ⓑ weights : 가중치 None(무작위 초기화)과 'imagenet'(ImageNet에서 사전 훈련된 값)을 지정 가..

Etc/Deep Learning 2021.08.04

5장 합성곱 신경망Ⅰ(2) - 전이 학습

5.3 전이 학습 합성곱 신경망 기반의 딥러닝 모델을 제대로 훈련시키려면 '많은 양의 데이터가 필요' BUT 큰 데이터셋을 확보하기 어려움(많은 돈, 시간을 필요로 함) 해결 방법 : 전이 학습(Transfer learning) 전이학습이란? '이미지넷처럼 아주 큰 데이터셋을 써서 훈련된 모델의 가중치'를 가져와, 해결하려는 과제에 맞게 보정해서 사용하는 방법 효과 : '비교적 적은 수의 데이터'로, 우리가 원하는 과제 해결 가능 ✔ 아주 큰 데이터셋을 사용해 훈련된 모델 = 사전 훈련된 모델(네트워크) //이미지넷 : 영상 인식 기술의 성능을 평가하는 이미지 데이터셋 전이 학습을 위한 방법 ① 특성 추출 ② 미세 조정 기법 5.3.1 특성 추출 기법 특성 추출 과정 ① 이미지넷 데이터셋으로 사전 훈련된..

Etc/Deep Learning 2021.08.04

5장 합성곱 신경망(1) - 합성곱 신경망의 구조(입력층, 합성곱층, 풀링층, 완전연결층, 출력층) (수정, 보완必)

5.1 합성곱 신경망 딥러닝의 역전파 : 복잡한 계산과정, 많은 자원을 요구 → 해결방안 : 합성곱 신경망 (이미지 전체를 한 번에 계산X, 이미지의 국소적 부분을 계산 → 시간과 자원을 절약 ⇒ 이미지의 세밀한 부분까지 분석 가능) 5.1.1 합성곱층의 필요성 이미지 · 영상 처리에 유용 합성곱층의 원리 예) 3×3 흑백 이미지가 있다고 가정 이미지 분석 : 왼쪽 그림의 3×3 배열을 오른쪽 그림과 같이 펼침(flattening) → 각 픽셀에 가중치를 곱한 후 은닉층으로 전달 문제점 : 이미지를 펼쳐서 분석하면 데이터의 공간적 구조를 무시하게 됨 해결 방법 : 합성곱층 5.1.2 합성곱 신경망 구조 음성/이미지/영상 인식에서 주로 사용되는 신경망 다차원 배열 데이터를 처리하도록 구성됨(→ 컬러 이미지..

Etc/Deep Learning 2021.08.04

4장 딥러닝(2) - 딥러닝 알고리즘(심층 신경망, 합성곱 신경망, 순환 신경망, 제한된 볼츠만 머신, 심층 신뢰 신경망)

4.3 딥러닝 알고리즘 딥러닝 알고리즘의 공통점 : 심층 신경망을 사용 목적에 따라 합성곱 신경망(CNN), 순환 신경망(RNN), 제한된 볼츠만 머신(RBM), 심층 신뢰 신경망(DBM)으로 분류됨 4.3.1 심층 신경망(DNN) 입력층과 출력층 사이에 다수의 은닉층을 포함하는 인공 신경망 머신러닝과 달리 심층 신경망은 다수의 은닉층을 추가 → 별도의 트릭없이 비선형 분류 가능 //머신러닝은 비선형 분류를 위해 여러 트릭을 사용함 심층 신경망's 다수의 은닉층 장점 : 다양한 비선형적 관계를 학습할 수 있음 단점 : 학습을 위한 연산량이 많음, 기울기 소멸 문제 등이 발생 가능 → 해결 방법 : 드롭아웃, 렐루 함수, 배치 정규화 등을 적용 4.3.2 합성곱 신경망(Convolutional Neural..

Etc/Deep Learning 2021.08.04

4장 딥러닝(1) - 딥러닝 출현(퍼셉트론), 구조, 용어(수정, 보완必)

4.1 인공 신경망의 한계와 딥러닝 출현 퍼셉트론 선형 분류기, 인공 신경망에서 이용하는 구조(입력층, 출력층, 가중치로 구성됨) 다수의 신호(흐름 有)를 입력으로 받음 → 하나의 신호를 출력 신호를 입력으로 받아 '흐른다/안 흐른다(1 또는 0)'는 정보를 앞으로 전달하는 원리로 작동 입력이 두 개(x1, x2)가 있을 때, 컴퓨터가 논리적으로 인식하는 방법 AND 게이트 모든 입력이 1일때 작동 x₁ x₂ y 0 0 0 1 0 0 0 1 0 1 1 1 AND 게이트에선 정상적으로 데이터 분류(검은색, 흰색 점)가 됨 OR 게이트 입력에서 둘 중 하나만 1이거나 둘 다 1일때 작동 x₁ x₂ y 0 0 0 1 0 1 0 1 1 1 1 1 OR게이트에서도 정상적으로 데이터 분류가 됨 XOR게이트(배타적 ..

Etc/Deep Learning 2021.08.04

4장 딥러닝 - 딥러닝 학습 | 딥러닝의 문제점, 해결 방안 | 딥러닝 이점 + α 옵티마이저

4.2.2 딥러닝 학습 딥러닝 학습 = 순전파 단계 → 역전파 단계 딥러닝 1단계. 순전파(feedforward) 네트워크에 훈련 데이터가 들어올 때 발생 데이터를 기반으로 예측 값을 계산하기 위해 전체 신경망을 교차해 지나감 = 모든 뉴런이 이전 층의 뉴런에서 수신한 정보에 변환(가중합 및 활성화 함수)을 적용, 다음층(은닉층)의 뉴런으로 전송하는 방식. 네트워크를 통해 입력 데이터를 전달, 데이터가 모든 층을 통과하고 모든 뉴런이 계산 완료하면, 그 예측 값은 최종 층(출력층)에 도달 그 다음 손실 함수로 네트워크의 손실 값(예측 값과 실제 값 차이, 오류) 추정 이때, 손실 함수 비용은 0이 이상적 (손실 함수 비용이 0에 가깝도록 하기위해 모델이 훈련을 반복하면서 가중치를 조정) → 손실이 계산되..

Etc/Deep Learning 2021.07.30

3장 머신러닝 - 비지도 학습(2) : 주성분 분석(PCA)

3.2.3 주성분 분석(PCA) PCA란? 고차원 데이터를 저차원(차원 축소) 데이터로 축소시키는 알고리즘 PCA를 사용하는 이유와 적용 환경 사용하는 이유: 주어진 데이터의 간소화(변수가 많은 고차원 데이터의 경우, 중요하지 않은 변수로 처리해야 할 데이터 양이 많아지고 성능이 나빠지는 경향 有 → 해결방법 : 고차원 데이터를 저차원으로 축소시켜, 데이터가 가진 대표 특성만 추출 → 효과 : 성능 향상, 작업은 좀 더 간편해짐 적용 환경 : 현재 데이터 특성(변수)가 너무 많을 땐, 데이터를 하나의 plot에 시각화해서 보기 어렵기 때문에 ,특성 p를 두 세개 정도로 압축해서 데이터를 시각화하고 싶을 때 유용 차원 축소 방법 ① 데이터들의 분포 특성을 잘 설명하는 벡터를 두 개 선택 다음 그림의 벡터 ..

Etc/Deep Learning 2021.07.27