인접하는 계층의 모든 뉴런과 연결되어 있는 것을 완전연결이라고 합니다.

 

완전연결 계층은 입출력 데이터를 넣을 때, 행렬로 변환해서 넣으면서, 1차원 데이터로 변환하는데

이 과정에서 데이터의 형상이 무시됩니다.

 

CNN은 데이터의 형상을 유지하는 합성곱 계층을 입출력 데이터로 사용합니다.

이렇게 합성곱 계층을 사용한 입출력 데이터를 특징 맵이라고 합니다.

입력 데이터는 입력 특징맵, 출력 데이터는 출력 특징맵이라고 합니다.

 

합성곱 계층에서 처리하는 합성곱 연산필터( 커널 )을 사용하여 연산하여 필터 연산이라고 합니다.

 

반응형

'Coding > DeepLearning' 카테고리의 다른 글

학습 관련 기술들 - 최적화  (0) 2020.03.10
오차역전파법 ( 내용 추가 중 )  (0) 2020.03.10
신경망 학습  (0) 2020.03.08
신경망 Neural network 이란? - 2  (0) 2020.03.07
신경망 Neural network 이란? - 1  (0) 2020.02.29

신경망 학습은 손실 함수 값을 가능한 낮추는 매개변수, 즉 최적 매개변수를 찾는 문제이며, 이 문제를 해결하는 것을 최적화라고합니다.

 

이 방법에는 여러 가지가 있습니다.

 

1. 확률적 경사 하강법 ( SGD )

 

2. 모멘텀

 

3. AdaGrad

 

학습을 진행시키면서 학습률을 감소시키는 방법입니다.

h라는 변수에 과거의 기울기를 계속 제곱해서 더해주고, 매개변수에  1 /√h을 곱해줌으로 학습률을 조정합니다.

 

4. RMSProp

 

AdaGrad는 과거의 기울기를 계속 제곱해서 더해주기 때문에 어느 순간에 0이 되어서 매개변수가 갱신이 되지 않습니다. 

이를 개선한 방법이 RMSProp으로 먼 과거의 기울기는 잊고 새로운 기울기 정보를 크게 반영하는 지수이동평균이라는 새로운 방법입니다.

 

5. Adam

 

 

반응형

'Coding > DeepLearning' 카테고리의 다른 글

CNN 합성곱 신경망  (0) 2020.03.12
오차역전파법 ( 내용 추가 중 )  (0) 2020.03.10
신경망 학습  (0) 2020.03.08
신경망 Neural network 이란? - 2  (0) 2020.03.07
신경망 Neural network 이란? - 1  (0) 2020.02.29

계산 그래프는 계산 과정을 나타낸 그래프입니다.

그래프이기 때문에 노드와 엣지로 나타내는데,

계산을 왼쪽에서 오른쪽으로 진행하는 것을 순전파, 오른쪽에서 왼쪽으로 진행하는 것을 역전파라고 합니다.

 

오차역전파법은 기울기를 구할 때 수치 미분보다 더 빠르게 구하기 위해 사용합니다.

반응형

'Coding > DeepLearning' 카테고리의 다른 글

CNN 합성곱 신경망  (0) 2020.03.12
학습 관련 기술들 - 최적화  (0) 2020.03.10
신경망 학습  (0) 2020.03.08
신경망 Neural network 이란? - 2  (0) 2020.03.07
신경망 Neural network 이란? - 1  (0) 2020.02.29

학습이란 학습시킨 데이터를 통해 가중치 매개변수의 최적값을 얻어낼 때, 컴퓨터가 알아서 획득하는 것을 말합니다.

손실 함수라는 것의 결괏값을 가장 작게 만드는 가중치 매개변수가 최적 값입니다.

 

기계학습은 학습시킬 데이터로부터 규칙(패턴)을 찾아내는 일을 사람이 아닌 기계(컴퓨터)가 하는 것입니다.

하지만 특징을 정하는 과정에서는 사람이 개입할 수 밖에 없습니다.

예를 들어 숫자를 분류하는 기계학습을 할 때, 이미지를 벡터로 변환하고, 벡터를 가지고 학습하는 방법이 있습니다.

이 때, 이미지를 벡터로 변환할 때는 사람의 개입이 있을 수 밖에 없습니다.

 

이러한 사람의 개입을 보다 최소화하는 것이 신경망딥러닝입니다.

그래서 딥러닝을 종단간 기계학습이라고도 합니다.

 

기계학습에는 훈련 데이터시험 데이터로 나누어 학습과 실험을 수행합니다.

훈련 데이터를 이용하여 최적의 매개변수를 찾아내고, 시험 데이터로 잘 찾아냈는지 테스트합니다.

이 때, 특정 데이터셋에만 지나치게 최적화되면 오버피팅( overfitting )되었다고 합니다.

 

신경망 학습이 잘 되었는지 확인하기 위해 사용하는 지표가 손실 함수입니다. 

손실 함수는 신경망의 학습의 나쁨을 나타내는 지표입니다.

즉, 손실 함수가 높다는 것은 학습이 제대로 되지 않았다는 의미입니다.

 

손실 함수에는 평균 제곱 오차, 교차 엔트로피 오차가 있다.

 

훈련 데이터가 너무 많으면 모든 손실 함수를 구하기 힘드니,

그 중 일부를 무작위로 뽑아서 학습을 수행하는 것을 미니배치( mini-batch ) 학습이라고 합니다.

 

정확도가 아닌 손실 함수를 사용하는 것은 개선할 때 매개 변수의 기울기를 이용하기 때문입니다.

만약에 정확도를 지표로 삼는다면, 변화량은 0이다가 계단 함수처럼 어느 순간 변화하기 때문에 기울기가 계속 0이 나오기 때문에 개선하기가 힘듭니다.

 

가중치 매개 변수 기울기를 구할 때는 수치 미분을 이용합니다.

두 점에서 함수 값들의 차인 차분을 이용하여 미분을 구하는 것을 수치 미분이라고 합니다.

 

한 번 학습할 때 얼마만큼 학습할지, 그리고 매개변수 값을 얼마나 갱신할지 정하는 것을 학습률이라고 합니다.

학습률이 너무 크거나 작으면 문제가 생길 수 있습니다.

 

에폭은 훈련 데이터를 모두 소진했을 때 횟수를 말합니다.

데이터가 1000개고 100개로 미니배치 학습할 경우 10회가 1 에폭입니다.

 

학습이 잘 될 경우 에폭이 늘어날수록 정확도가 늘어나는데, 너무 늘어나면 오버피팅이 일어나서 정확도가 떨어집니다.

반응형

신경망을 구현할 때 행렬을 사용하여 구현할 수 있습니다.

 

 

출력층에서는 문제에 따라 다른 활성화 함수를 사용하는데,

 

회귀에는 항등 함수를, 분류에는 소프트맥수 함수를 사용합니다.

 

분류는 데이터가 어느 클래스에 속하는지 해결하는 문제입니다.

성별을 분류하거나, 어떤 동물인지 분류하는 것 등을 예로 들 수 있습니다.

분류에서는 출력층의 뉴런 수를 분류하려는 클래스 수와 같게 설정합니다.

예를 들면 숫자 분류를 하려면 클래스가 0~9까지 10개이니 출력층의 뉴런 수는 10개가 되어야합니다.

 

회귀는 입력한 데이터를 통해 연속적인 수치를 예측하는 문제입니다.

예를 들면 사진 속 인물의 몸무게, 키 같이 연속적인 데이터가 출력으로 나오는 문제를 예측하는 것이 회귀입니다.

 

항등 함수는 입력을 그대로 출력하는 함수입니다.

 

소프트맥수 함수는 출력을 0-1까지의 값으로 정규화하여 출력 값들의 합이 1이 되는 함수입니다.

 

전처리는 신경망에 넣을 입력 데이터에 특정한 변환을 하는 것입니다.

전처리에는 정규화와 데이터 백색화 등이 있습니다.

 

정규화는 데이터를 특정 범위로 변환하는 것을 말합니다. 

예를 들어 데이터 값들을 모두 0에서 1까지의 값으로 변환하는 소프트 맥스가 있습니다.

 

데이터 백색화는 전체 데이터를 균일하게 분포시키는 것을 말합니다.

 

배치( batch )는 입력 데이터를 하나로 묶어 보내는 것입니다.

예를 들어 하나의 이미지 파일을 처리하는 것보다, 100개를 한 번에 묶어서 보내 처리하는 것입니다.

이러면 입출력(I/O) 장치의 병목 현상을 조금 더 피할 수 있고,

수치 계산 라이브러리들이 큰 배열의 계산에 특화되어 있어서 이미지당 처리 시간을 줄일 수 있습니다.

반응형

'Coding > DeepLearning' 카테고리의 다른 글

학습 관련 기술들 - 최적화  (0) 2020.03.10
오차역전파법 ( 내용 추가 중 )  (0) 2020.03.10
신경망 학습  (0) 2020.03.08
신경망 Neural network 이란? - 1  (0) 2020.02.29
Perceptron 퍼셉트론이란?  (0) 2020.02.29

퍼셉트론의 식

X1 * w1 + X2 * w2 + b 으로 입력 값을 출력 값으로 바꿔주는 함수를 활성화 함수 ( activation function) 라고 합니다.

 

이 함수는 여러 가지가 있는데, 일반적으로

 

단순 퍼셉트론에서는 계단 함수,

다층 퍼셉트론에서는 시그모이드 함수를 사용합니다.

 

계단 함수, 시그모이드 함수는 둘 다 비선형입니다.

그리고  활성화 함수로 ReLU 함수도 사용합니다.

 

 

반응형

'Coding > DeepLearning' 카테고리의 다른 글

학습 관련 기술들 - 최적화  (0) 2020.03.10
오차역전파법 ( 내용 추가 중 )  (0) 2020.03.10
신경망 학습  (0) 2020.03.08
신경망 Neural network 이란? - 2  (0) 2020.03.07
Perceptron 퍼셉트론이란?  (0) 2020.02.29

퍼셉트론은 여러 신호를 입력 받고, 하나의 신호를 출력한다.

 

이 때 출력 값은 전류가 흐른다 ( 1 ) , 혹은 흐르지 않는다 ( 0 )로 나온다.

 

입력이 X1, X2라고 하고, 결과가 Y라고 할 때,

 

 X1 * w1 + X2 * w2 θ 보다 크면 1, 작거나 같으면 0을 출력한다고 하자.

 

그럴 때,  θ (세타)를 임계값이라 하고, 

w1, w2를 가중치 (weight) 라고 한다.

 

 θ를 식에서 빼주어

 

X1 * w1 + X2 * w2 + b 가 0보다 크면 1, 0보다 작으면 0을 반환한다고도 할 수 있다.

 

이 때 b를 편향 ( bias )라고 한다.

 

우리는 이 식( 퍼셉트론 )으로 AND, OR, NAND을 x, y 그래프로 그릴 수 있지만, XOR은 그리지 못합니다.

 

이렇게 직선으로 표현 가능하면 선형, 불가능하면 비선형이라고 합니다.

 

이러한 문제를 우리는 여러 퍼셉트론을 합친 다층 퍼셉트론으로 해결가능합니다.

반응형

'Coding > DeepLearning' 카테고리의 다른 글

학습 관련 기술들 - 최적화  (0) 2020.03.10
오차역전파법 ( 내용 추가 중 )  (0) 2020.03.10
신경망 학습  (0) 2020.03.08
신경망 Neural network 이란? - 2  (0) 2020.03.07
신경망 Neural network 이란? - 1  (0) 2020.02.29

+ Recent posts