목록공부/딥러닝 (21)
Broccoli's House
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 합성곱 신경망(CNN) : 풀링 계층 풀링 계층 - 풀링(Pooling) : 풀링은 2차원 데이터의 세로 및 가로 방향의 공간을 줄이는 연산이다. 풀링에는 최대 풀링(Max Pooling), 평균 풀링(Average Pooling) 등이 있다. 최대 풀링은 대상 영역에서 최댓값을 취하는 연산이고, 평균 풀링은 대상 영역의 평균을 계산한다. 이미지 인식 분야에서는 주로 최대 풀링을 사용한다. - 위의 그림은 2X2 최대 풀링을 스트라이드 2로 처리하는 순서이다. 풀링의 윈도우 크기와 스트라이드는 같은 값으로 설정하는 것이 보통이다. 풀링 계층의 특징 - 풀링 계층은 합성곱 계층과 달리 학습해야 할 매개변수가 없다. 풀링은 대상 영역에서 최댓값이나 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 합성곱 신경망(CNN) : 합성곱 계층 완전 연결 계층 - 완전 연결 신경망이란, 인접하는 계층의 모든 뉴런과 결합되어 있는 신경망을 말한다. 입력 데이터와 가중치가 1대 1로 대응하는 것을 완전 연결(Fully-Connected)이라고 하며, 행렬의 내적(Affine)으로 표현된다. 이 완전 계층의 문제점은 바로 데이터의 형상이 무시된다는 것이다. 입력 데이터가 다차원의 형상일 때, 완전 연결 계층에 입력해주기 위해서는 이 다차원 데이터를 1차원으로 평탄화해준 후에 입력하여야만 한다. - 가장 흔한 다차원 데이터인 이미지를 생각해보면, 이미지 하나는 2차원의 픽셀 배열에 RGB의 채널이 합쳐져 3차원을 이루고 있다. 이 RGB의 각 채널은 서로..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 합성곱 신경망(CNN) : 소개 및 구조 합성곱 신경망 - 합성곱 신경망 : 합성곱 신경망(CNN : Convolutional Neural Network)은 음성 인식이나 이미지 인식 에서 주로 사용되는 신경망의 한 종류이다. 다차원 배열 데이터를 처리하도록 구성되어 있어, 컬러 이미지와 같은 다차원 배열 처리에 특화되어 있다. 따라서 이미지 인식 분야에서 딥러닝을 활용한 기법은 대부분 CNN을 기초로 한다. - 일반 신경망의 경우, 이미지 데이터를 그대로 처리한다. 즉, 이미지 전체를 하나의 데이터로 생각해서 입력으로 받아들이기 때문에, 이미지의 특성을 찾지 못하고 위와 같이 이미지의 위치가 조금만 달라지거나 왜곡된 경우에 올바른 성능을 내지 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 학습 관련 기술 : 초매개변수 설정 초매개변수 - 초매개변수(하이퍼파라미터, hyper-parameters) : 초매개변수, 하이퍼 파라미터란 가중치(weight)같이 모델이 스스로 설정 및 갱신하는 매개변수가 아닌, 사람이 직접 설정해주어야 하는 매개변수를 말한다. 신경망에서는 뉴런의 수, 배치(batch)의 크기, 학습률(learning rate), 가중치 감소시의 규제 강도(regularization strength) 등이 있다. 이러한 초매개변수 값에 따라 모델의 성능이 크게 좌우되기도 한다. - 초매개변수 값은 매우 중요하지만, 사람이 결정해야하는 것이기에 값을 결정하기까지 많은 시행착오를 필요로 한다. 이러한 시행착오를 그나마 줄이기 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 학습 관련 기술 : 오버피팅 억제 오버피팅 - 오버피팅(과대적합, Overfitting) : 머신러닝에서 과대적합(Overfitting)은 큰 문제 중에 하나이다. 과대적합이란 머신러닝(여기서는 신경망) 모델이 너무 과한 학습으로 인해 훈련 데이터에만 지나치게 적응되어 그 이외의 시험 데이터에 대해서는 제대로 대응하지 못하는 것을 말한다. - 머신러닝에서는 다양한 상태에 대하여 일반적인 성능을 내는 모델을 지향하므로, 훈련 데이터에 없는 상황이 주어지더라도 올바른 결과를 내는 모델이 더 좋은 모델이다. 따라서 복잡하고 표현력이 좋은 모델을 만들면서도, 과대적합을 억제하는 기술이 중요해지는 것이다. - 위와 같은 모델이 과대적합된 모델이다. 훈련 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 학습 관련 기술 : 배치 정규화 배치 정규화 - 배치 정규화(Batch Normalization) : 신경망의 골치 아픈 점은 바로 기울기 소실 문제(Gradient Vanishing Problem)이 발생한다는 것이다. 이 문제를 해결하기 위하여 시그모이드(sigmoid)나 하이퍼탄젠트(tanh) 함수에서 렐루(ReLU)로의 활성화 함수 변화, 가중치의 초기값 설정 등의 방식을 채용하였다. 가중치의 초기값을 적절히 설정하면 각 층의 활성화 값 분포가 적당히 퍼지면서 학습이 원활하게 수행된다. 이러한 점에 착안하여 각 층의 활성화 값을 강제로 퍼뜨리는 것이 바로 배치 정규화이다. - 보통의 경우 신경망 모델에 데이터를 입력하기 전에 전체 데이터 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 학습 관련 기술 : 초기 가중치 설정 가중치의 초깃값 - 가중치의 초깃값을 지정해주는 일은 학습에서 매우 중요한 부분이다. 지정해 주지 않으면 컴퓨터가 무작위로 가중치의 초깃값을 지정하고 학습을 해나가는데, 만약 가중치의 초깃값이 최적값과 멀리 떨어져있다면 학습하는데 오랜 시간이 걸리게 된다. 또한 오래 학습할 경우 과대적합(Overfitting)의 가능성을 내포하고 있으므로 초기 가중치를 설정하여 빠르게 학습하는 것이 매우 중요하다. - 가중치 감소(Weight Decay) : 가중치 감소는, 간단히 말해서 가중치 매개변수의 값이 작아지도록 학습하는 방법이다. 가중치 값을 작게 하여 과대적합이 일어나지 않게 하는 것이다. 특정 가중치 값을 0으..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 학습 관련 기술 : 매개변수 갱신 매개변수 갱신 - 최적화(Optimization) : 학습 모델과 실제 레이블과의 차이는 손실 함수로 표현되며, 학습의 목적은 오차, 손실 함수의 값을 최대한 작게 하도록하는 매개변수(가중치, 편향)를 찾는 것이다. 즉, 매개변수의 최적값을 찾는 문제이며, 이러한 문제를 푸는 것을 최적화라 한다. - 손실 함수를 최소화하는 매개변수를 찾는 방법에는 여러 가지가 있다. 가장 간단하게는 손실 함수의 그래프에서 가장 낮은 지점을 찾아가도록 손실 함수의 기울기를 구해 최적값을 찾아가는 확률적 경사 하강법(SGD)과 이 방법의 단점을 보완한 모멘텀 및 AdaGrad, Adam 방법 등이 있다. 이것들을 하나하나 알아보도록..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 오차역전파법 : 역전파 및 예시 계산 그래프 - 계산 그래프(Computational Graph) : 계산 그래프란 계산 과정을 그래프로 나타낸 것이다. 그래프는 자료구조의 일종으로 여러 개의 노드(node)와 그 노드들을 잇는 선, 엣지(edge)로 표현된다. 덧셈 역전파 - z=x+y 수식을 계산 그래프로 나타내면 왼쪽 위와 같다. 우측은 좌측의 계산 그래프의 역전파이다. 계산 그래프의 최종 출력이 L이라하면, z가 L에 끼치는 영향력은 ∂L/∂z으로 표현된다. 마찬가지로, x가 최종 출력 L에 끼치는 영향력은 ∂L/∂x, y가 최종 출력 L에 끼치는 영향력은 ∂L/∂y이다. ∂L/∂x에 연쇄 법칙을 적용하면 ∂L/∂x는 ∂L/∂z에 ∂z/∂..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 오차역전파법 : 소개 오차역전파법 - 오차역전파법(Back Propagation) : 신경망 학습에서, 신경망의 가중치(weight)에 대한 손실 함수의 기울기를 구하기 위해 미분을 사용했다. 미분 계산은 단순하고 구현하기 쉽지만, 시간이 오래걸리는 단점이 존재한다. 즉 초기 가중치에서의 손실 함수를 계산하고 그것을 미분하여 다음 가중치 계산에 사용하는데, 뉴런이 많아져 각 노드의 매개변수(가중치, 편향)가 많아지면 그 모든 매개변수를 학습시키기란 매우 어렵다는 것이다. 이것을 효율적으로 하기 위한 것이 오차역전파 알고리즘이다. - 학습이란 각 뉴런의 매개변수(가중치, 편향)에 의해 계산된 최종 출력을 토대로 손실함수(데이터의 레이블과 실제 출력..