본문 바로가기

딥러닝5

[딥러닝의 기본] Linear Regression cost 함수 최소화 ML lec 03 - Linear Regression의 cost 최소화 알고리즘의 원리 설명 가설과 실제 값의 차를 최소화할 수 있는 W와 b를 찾는 것이 Linear Regression의 목표다. 설명을 위해서 hypothesis를 간단히 했다. 편향 b를 없애고 가중치 W만 가진다. W 값에 따라 cost 함수는 어떻게 될지 본다. W에 따라 cost(W)가 어떻게 변할지 그래프를 그려볼 수 있다. 우리는 cost 함수가 최소화되게끔 찾아야 하기 때문에 최소화된 점을 찾는다. 여기선 (1,0)이지만 기계적으로 찾아야 한다. 최솟값을 찾을 때 많이 사용되는 알고리즘이 경사하강법 Gradient descent algorithm이다. 만약 언덕 위에 있다면 주변에 있는 경사진 곳을 찾아 내려가는 간단한 방.. 2020. 5. 20.
[딥러닝의 기본] Linear Regression 의 개념 ML lec 02 - Linear Regression의 Hypothesis 와 cost 설명 하나의 지도학습을 가정해보자. 예측하는 최종목표가 점수(0~100) 예측이라면 regression 모델이다. 이런 데이터를 가지고 학습시키는 과정을 training이라 하고, x와 y를 training data라고 한다. 데이터를 가지고 학습하면 모델을 만들고 학습이 끝난다. regression을 사용한다는 것은 7시간 공부한 학생의 점수를 시험 치기 전에 예측하는 일이다. 이러한 예측은 선형 회귀, Linear Regression이라 한다. Linear Regression이 어떻게 동작하는지 보겠다. 설명을 위해 간단한 dataset이 있다. x는 예측을 위한 자료 또는 feature다. y는 예측 대상이다. .. 2020. 5. 20.
4-2. 신경망 학습 4.4. 기울기 앞 절에서는 x0 와 x1 의 편미분을 변수별로 따로 계산했다. 가령 x0 = 3, x1 = 4 일 때 (x0 , x1) 양쪽의 편미분을 묶어 계산한다고 생각해보자. 위처럼 모든 변수의 편미분을 벡터로 정리한 것을 기울기(gradient)라고 한다. 기울기는 다음과 같이 구현할 수 있다. def numerical_gradient(f, x): h = 1e-4 #0.0001 grad = np.zeros_like(x) #x와 형상이 같은 zero 배열 생성 for idx in range(x.size): tmp_val = x[idx] # f(x+h) 계산 x[idx] = tmp_val + h fxh1 = f(x) # f(x-h) 계산 x[idx] = tmp_val - h fxh2 = f(x) g.. 2020. 3. 25.
4-1. 신경망 학습 4. 신경망 학습 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻한다. 4장에서는 신경망이 학습할 수 있도록 해주는 지표인 손실 함수를 다뤄본다. 손실 함수의 결괏값을 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표다. 이번 장에서는 손실 함수의 값을 가급적 작게 만드는 기법으로 함수의 기울기를 활용하는 경사법을 살펴본다. 4.1. 데이터에서 학습한다. 신경망의 특징은 데이터를 보고 학습할 수 있다는 점이다. 데이터에서 학습한다는 것은 가중치 매개변수의 값을 데이터를 보고 자동으로 결정한다는 뜻이다. 실제 신경망에서 매개변수를 수작업으로 정한다는 것은 불가능하다. 신경망 학습에 대해 살펴보고 파이썬으로 MNIST 데이터셋의 손글씨 숫자를 학습하는 코드를 구현해본.. 2020. 3. 16.
3-2. 신경망 3.4. 3층 신경망 구현하기 3층 신경망에서 수행되는, 입력부터의 출력까지의 처리(순방향 처리)를 구현하겠다. 넘파이의 다차원 배열을 사용한다. 3.4.1. 표기법 설명 3.4.2. 각 층의 신호 전달 구현하기 입력층에서 '1층의 첫 번째 뉴런'으로 가는 신호를 보겠다. 편향을 뜻하는 뉴런ⓛ이 추가됐다. 가중치를 곱한 신호 두 개와 편향을 합하면 다음과 같이 계산한다. 여기에서 행렬의 곱을 이용하면 1층의 '가중치 부분'을 간소화할 수 있다. 행렬들은 각각 다음과 같다. 넘파이의 다차원 배열을 사용해서 간소화된 식을 구현해본다. 입력 신호, 가중치, 편향은 적당한 값으로 설정한다. X = np.array([1.0, 0.5]) W1 = np.array([[0.1, 0.3, 0.5], [0.2, 0.4, .. 2020. 3. 9.