딥러닝/[ 이론 ] 33

batch 사이즈에 따른 학습 형태

batch사이즈가 작을수록 데이터 하나하나의 값을 잘 반영하지만, 많이 돌아간다. 반면 batch사이즈가 클 수록 여러가지 데이터가 평균을 잘 반영하기 때문에 global minimum을 향해 잘 간다. 그리고 batch 사이즈가 클 수록 다양한 데이터들로 cost function을 구성하기 때문에 우리가 원하는 둥근 밥그릇 모양이 만들어 진다. 1. batch size=2 (2개의 데이터로 cost function이 만들어진것) 2. batch size = 4 3. batch size = 32 (보통 데이터를 학습할 때 batch size는 32가 적절하다) * 출처 : 패스트캠퍼스 수학적으로 접근하는 딥러닝 올인원 패키지 Online.

학습용 데이터의 평균에 따른 cost function의 모양

1. 데이터의 평균이 0에 가까울때 데이터의 평균이 0에 가까울 수록 cost function의 모양이 둥근 밥그릇 모양이 된다. 2. 데이터의 평균이 0에 가깝지 않을때 데이터의 평균 값이 커질 수록 cost function이 좀 더 뾰족한 모양이 된다. 따라서 학습도 ⍬_1에 대해서만 많이 수행된다 (⍬_1을 미분한 값에 x가 포함되어 있기 때문) => 따라서 데이터를 항상 정규화(평균=0, 표준편차=1) 해준 후 학습을 진행한다. * 출처 : 수학적으로 접근하는 딥러닝 올인원 패키지 Online.

선택한 데이터의 유형에 따른 cost function의 모양

1. loss function loss function은 데이터 하나에 대한 오차를 구하는 것이기 때문에, 이를 그래프로 나타내면 아래와 같이 여러 값(선)들이 모여있는 형태가 된다. 2. cost function 반면 cost function은 데이터들을 모두 모아 평균을 낸 값이므로 등고선의 형태(밥그릇형태)로 볼 수 있다. 3. loss function과 cost function의 관계 loss function 선이 고르게 분포할 수록 cost function은 둥근 모양으로 만들어 진다. * 출처 : 패스트캠퍼스 수학적으로 접근하는 딥러닝 올인원 패키지 Online.

loss function으로 본 데이터의 평균, 분산, 노이즈에 따른 학습의 차이

1. 분산에 따른 학습의 차이 데이터의 분산이 높을 때 보다 낮을 때 더 빠른 학습이 가능하다. 2. 평균에 따른 학습의 차이 평균이 커질수록 파라미터의 변화율이 크다. ⍬_1의 미분값에 x가 포함되어있고, x의 절댓값이 1이상일때 학습률이 높아지기 때문. 3. 노이즈에 따른 학습의 차이 노이즈가 있을땐 데이터들의 계곡이 한 점에서 교차하지 않는다. 따라서 학습은 아래와 같이 이루어 진다 * 출처 :수학적으로 접근하는 딥러닝 올인원 패키지 Online.

Single Variable Linear Regression에서 파라미터의 개선

bias가 있는 linear regression을 수행할 때 loss function은 다음과 같다. 또한 loss function을 각각의 파라미터로 미분하면 다음과 같다 이때 ⍬_1의 미분값에는 x가 곱해져 있기 때문에 x의 값에 따라 ⍬_1과 ⍬_2의개선 속도가 다르다. x의 절댓값이 1보다 크면 ⍬_1이 ⍬_0보다 더 빠르게 개선되고, x의 절댓값이 1보다 작으면 ⍬_0이 ⍬_1보다 더 빠르게 개선된다. 사진에서 볼 수 있듯 x의 절댓값이 1보다 작은 보라색 부분은 ⍬_1(가로축)보다 ⍬_0(세로축)의 변화율이 더 크고, x의 절댓값이 1보다 큰 빨간색 부분은 ⍬_1(가로축)보다 ⍬_0(세로축)의 변화율이 더 작다 * 출처 : 패스트캠퍼스 - 수학적으로 접근하는 딥러닝 올인원

batch size에 따른 loss의 변화율

1. 학습 과정상의 차이 batch size의 크기에 따라 학습되는 과정되는 모습이 달라질 수 있다. batch size가 작으면 순간 loss가 커지고 그에 따라서 파라미터가 급격히 변화하는 경향이 있다. 따라서 그래프가 비교적 크게 흔들린다. => 그 이유는 batch size가 크면 여러 데이터의 평균으로 loss가 구해지기 때문에 강건하게 변한다. 2. 학습속도상의 차이 batch size가 작을수록 파라미터를 개선하는 횟수(계산을 수행하는 횟수)가 크기 때문에 시간이 오래걸린다. 3. iterator는 batch size가 작을수록 크다.

데이터 생성기

y=ax+b 로 선형회귀분석을 하기위해 데이터를 생성하는 클래스. (1) 소스코드 import numpy as np import matplotlib.pyplot as plt class dataset_generator: def __init__(self,feature_dim=1,n_sample=100,noise=0): self._feature_dim=feature_dim self._n_sample=n_sample self._noise=noise self._coefficient=None self._init_set_coefficient() # 초기 기울기값 설정, 마지막값은 bias (기울기는 1로 초기화, bias는 0으로 초기화) def _init_set_coefficient(self): self._coef..

batch size

딥러닝에서 데이터를 몇개 단위로 학습시킬것인지에 대한 하이퍼파라미터를 batch size라고 한다. 데이터의 개수가 x개 일때, batch size는 크게 3가지로 나뉜다 batch gradient descent mini-batch gradient descent stochastic gradient descent 설명 모든 데이터를 사용해서 그 평균값으로 한번만 웨이트를 개선 N개의 데이터씩 사용 1개의 데이터씩 사용 1epoch 당 iterate 횟수 1 X/N X 계산속도 빠름 > 느림 신뢰도 낮음

자코비안 메트릭스

미분을 하는데 네가지 경우가 있다. 1. 스칼라함수를 스칼라변수로 미분하는경우 2. 스칼라함수를 벡터변수로 미분하는경우 3. 벡터함수를 스칼라변수로 미분하는경우 4. 벡터함수를 벡터변수로 미분하는경우 행이 함수, 열이 변수를 나타낸다. 즉 1행 1열은 1번째함수를 1번째 변수로 편미분한값 2행 1열은 2번째함수를 1번째 변수로 편미분한값, 1행 2열은 1번쨰 함수를 2번째 변수로 편미분한 값을 뜻한다. * 출처 강의 : 패스트캠퍼스 - 수학적으로 접근하는 딥러닝 논문 : https://arxiv.org/pdf/1802.01528.pdf