본문 바로가기

【1】Deep Learning 시작하기

(29)
최적화(Optimizer)가 뭐였지? 확률적 경사 하강법(SGD) 여러분은 1.2 경사 하강법이 기억나는가? 경사 하강법은 오차를 가장 작게 만드는 방향으로 가중치를 업데이트 하면서 최적 값을 찾는 방법이다. 이렇게 파라미터의 최적 값을 찾는 문제를 최적화(optimizer)라고 하며 최적화는 정답에 가까운 출력을 만드는 신경망의 목표인만큼 중요하지만 어려운 문제다. 앞에서 최적화의 방법으로 경사 하강법을 언급했는데 시간이 지나면서 더욱 발전된 기술들이 등장하기 시작했다. 지금부터 그 종류를 하나씩 살펴보겠다. 확률적 경사 하강법(SGD) “GD보다 조금 보되 빠르게 찾자!“ 우리가 앞에서 다룬 경사 하강법(Gradient Descent)은 모든 데이터 셋에 대하여 검토하므로 확실하지만 방대한 계산량으로 인해 속도가 느리다는 단점이 있다. 이 문제를 보완해서 등장한 기..
지도학습(Supervised Learning) 머신러닝의 종류는 다양한 기준으로 나눌 수 있는데 그중 학습하는 방식과 사용하는 데이터에 의해 다음의 4가지로 구분 가능하다. · 지도학습 · 비지도학습 · 반지도학습 · 강화학습 이렇게 분류가 가능한 것은 학습 목적이 달라 그로 인해 학습 방식에도 차이가 있기 때문이다. 학습 방식이 다르니 학습에 사용되는 데이터의 형태에도 차이가 있어 이러한 특징을 이용해 종류를 나눌 수 있는 것이다. 이제 지도학습부터 하나씩 다뤄보도록 하겠다. 여러분은 각 학습 마다 데이터, 방식, 목적이라는 세가지 키워드에 초점을 맞추어 따라오기 바란다. "지도학습(Supervised Learning)" 지도학습은 말그대로 학습과정을 지도하는 것이다. 그러므로 학습 데이터에는x 와 x에 대한 라벨인 y가 함께 있으며 컴퓨터는 x1..
Batch - Normalization 신경망의 학습 효율을 높이기 위해서 활성화 함수, 초기화, 학습률의 변화 등 다양한 방법들이 등장해왔다. 이러한 간접적인 방법들 뿐만 아니라 학습 과정 자체를 안정화 하기위한 근본적인 연구들 또한 진행이 되어왔다. 신경망의 불안정성에는 내부 공변량 변화(Internal Covariance Shift)의 문제가 있는데 이는 신경망의 각 층 별 활성화 함수로 들어가는 입력데이터의 분포가 다른 현상을 말한다. 내부 공변량 변화 문제를 해결함으로써 신경망 학습 자체의 안전성을 높이고자 등장한 기법이 바로 배치 정규화다. "Batch - Normalization" 배치라는 용어는 전체 데이터가 한 번에 처리하기 힘들 경우 작은 단위로 나누어 처리할 수 있는데 이때 나누는 단위를 배치라고 하고 나누어진 데이터의 묶..
Drop-out 드롭 아웃은 노드를 임의로 끄면서 학습하는 기법이다. 은닉층에 배치된 노드 중 일부를 임의로 끄면서 학습을 한다. 꺼진 노드는 신호를 전달하지 않으므로 지나친 학습을 방지하는 효과를 주는 것이다. 왼쪽의 그림은 일반적인 신경망이고 오른쪽의 그림은 드롭 아웃을 적용한 신경망의 모습이다. 일부 노드들이 꺼지고 남은 노드들로 신호가 연결되는 신경망의 형태를 볼 수 있다. 어떤 노드를 끌 지는 학습할 때마다 무작위로 선정이 되며, 시험 데이터로 평가할 때는 노드들을 전부 사용해 출력하되 노드 삭제비율(드롭아웃 비율이라고 한다)을 곱해 성능을 평가한다. 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com
L1 Norm, L2 Norm 정확하게 말하면 규제화(regularization)는 일부 미지수의 값을 아주 작게 만들어 그 영향을 줄임으로써 마치 미지수의 개수가 적어진 효과를 가져온다. 가중치 값이 커지는 것을 막는다는 제한, 규제의 의미가 있데 이런 규제화의 종류에는 L1 norm(노름)과 L2 norm이 존재한다. 각 각의 설명을 위해 두 종류를 비교해 보도록 하겠다. 다음의 표에 기재된 수식을 한번 보자. 먼저 λ (람다)는 규제화의 세기를 조절하는 변수이며 의 값을 크게 주면 강한 규제를, 값을 작게 주면 약한 규제를 줄 수 있다. 수식을 보면 입력 feature가 d개가 있을 때 바이어스(b)를 w0으로 표현해 총 d+1개의 w가 있고 L1, L2 모두 w 앞에 를 곱해 가중치의 크기를 규제하는 형태의 수식이다. 차이가 ..
Overfitting 해결하기 Input feature 수 = 파라미터의 수 = 가중치의 수 = 미지수의 개수-1 (bias) Train data의 양 = (가중치를 풀) 방정식의 수 상대적으로, 방정식 보다 미지수가 많으면 오버피팅이 발생! 작성자 홍다혜 ghdek11@gmail.com / 이원재 ondslee0808@gmail.com
Overfitting이 무엇일까? 우리는 지금까지 신경망의 학습 성능을 높이기 위한 기술들을 알아보았다. 신경망은 데이터를 기반으로 학습을 시키는데 이 때 학습한 결과를 평가하는 과정이 반드시 필요하다. 일종의 시험을 통해 신경망의 학습 결과를 확인하는 것이다. 학습에 사용되는 데이터를 학습 데이터(Trainset)라고 하고 평가에 사용되는 데이터를 시험 데이터(Testset)라고 하는데 신경망을 충분히 학습시키다 보면 학습데이터를 너무 ‘완벽 학습’ 하여 학습에 등장하지 않은 데이터는 맞추지 못하는 상황이 발생하게 된다. 이를 오버피팅(혹은 과적합, Overfitting) 상태라고 부른다. 즉, 오버피팅이란 주어진 데이터를 지나치게 학습한 나머지 조금만 바뀐 비슷한 문제에 대해서는 답을 찾지 못하는 것이다. 우리가 원하는 이상적인 상황..
신경망 모형의 기본 구조 우리는 앞에서 신경망의 구조를 여러 번 언급했었다. 신경망은 다층퍼셉트론의 발전된 형태로 입력층-은닉층-출력층 구조인 다층퍼셉트론에서 은닉층을 두개 이상 쌓은 구조를 가진다. 은닉층의 개수가 많아지면 신경망이 깊어졌다(deep)이라고 하며 이를 심층 신경망(Deep Nerual Network, DNN)이라고 한다. 이번장에서는 딥러닝으로 넘어가기 전 마지막으로 신경망의 구조에 대해서 정리해보는 시간을 가질것이다. 처음 소개하는 내용이 아니므로 질문에 대답해보면서 따라와주기를 바란다! 아래의 그림은 가장 기본적인 신경망의 구조라고 할수 있는 은닉층이 2개인 구조의 신경망 그림이다. 몇가지 퀴즈를 통해 여러분이 알고 있는 내용을 확인 해 보겠다. Quiz 1 위 신경망은 ‘4층 신경망’이다. O X Quiz..