머신러닝 8

[머신러닝] 오차 역전파 - 오차 역전파 식 유도, 공식

오차 역전파(Back Propagation) 편미분과 연쇄 법칙(chain rule)을 이용하여 미분을 분리한 후, 수학 공식으로 나타내어 계산하는 방법 오차 역전파는 행렬로 표현되는 수학공식을 이용하기 때문에 빠른 계산이 가능하다. (수치 미분을 쓸 때보다 훨씬 더 시간을 단축할 수 있다.) 시그모이드(sigmoid) 함수의 미분 $ \begin{eqnarray} \frac{\partial \mathrm{sigmoid} (z)}{\partial z} & = & \frac{\partial}{\partial z} \cdot \frac{1}{1+e^{-z}} \\ & = & \frac{\partial}{\partial z} \cdot (1+e^{-z})^{-1} \\ & = & \frac{e^{-z}}{(1..

머신러닝 2020.08.11

[머신러닝] 표기법과 피드 포워드

표기법(notation) 계층 간 가중치 표기법(weight notation) 가중치 $w^{(2)}_{21} \Rightarrow$ 계층 2의 노드에 적용되는 가중치로서, 1 계층의 노드 1에서 2 계층의 노드 2로 전달되는 신호를 강화 또는 약화시키는 가중치(즉, 가중치에서의 아래 숫자는 다음 계층의 노드 번호가 먼저 나온다.) 노드의 바이어스 표기법(bias notation) 바이어스 $b^{(2)}_{1} \Rightarrow $ 계층 2에 있는 첫 번째 노드에 적용되는 바이어스 노드의 선형 회귀 계산 값 표기법(linear regression notation) 선형 회귀 계산 값 $x^{(2)}_{2} \Rightarrow$ 계층 2의 두 번째 노드 선형 회귀(linear regression) ..

머신러닝 2020.08.04

[머신러닝] 신경망, 인공지능, 딥러닝

딥러닝 ⊂ 머신러닝 ⊂ 인공지능 인공지능(AI) : 인간의 지적능력을 컴퓨터를 통해 구현하는 기술 머신러닝(ML): 컴퓨터가 데이터를 통해 스스로 학습해 예측이나 판단을 제공하는 기술 신경망(Neural Network) 신경 세포 뉴런(Neuron)은 이전 뉴런으로부터 입력 신호를 받아 또 다른 신호를 발생시킨다. 그러나 입력에 비례해서 출력을 내는 형태 ($y = Wx$)가 아니라, 입력 값들의 모든 합이 어느 임계점(threshold)에 도달해야만 출력 신호를 발생시킨다. $\Rightarrow$ 이처럼 입력 신호를 받아 특정 값의 임계점을 넘어서는 경우에, 출력을 생성해주는 함수를 활성화 함수(activation function)라고 하는데, 지금까지 사용해왔던 로지스틱 회귀(Logistic Reg..

머신러닝 2020.07.26

[머신러닝] 로지스틱 회귀 - 분류, 시그모이드 함수, 손실 함수

분류(Classification) Training Data 특성과 관계 등을 파악한 후, 미지의 입력 값에 대해 그 결과가 어떤 종류의 값으로 분류될 수 있는지 예측하는 것 로지스틱 회귀(Logistic Regression) 알고리즘 1. Training Data 특성과 분포를 나타내는 최적의 직선을 찾고(Linear Regression) 2. 그 직선을 기준으로 데이터를 위/아래, 또는 왼쪽/오른쪽 등으로 분류(Classification) 해주는 알고리즘 $\Rightarrow$ 이러한 Logistic Regression은 Classification 알고리즘 중에서도 정확도가 높은 알고리즘이다. 시그모이드 함수(sigmoid function) 출력 값이 1 또는 0 만을 가져야만 하는 분류(classi..

머신러닝 2020.07.24

[머신러닝] 선형 회귀- 손실 함수, 경사 하강법

회귀 회귀는 Training Data를 이용해 데이터의 특성과 상관관계 등을 파악해, 그 결과를 바탕으로 학습해 Training Data에 없는 데이터가 주어졌을 때, 그 결과를 연속적인 값으로 예측하는 것 선형 회귀 Training Data의 특성을 가장 잘 표현할 수 있는 가중치 W(기울기), 바이어스 b(y절편)를 찾는 학습 개념 오차(error), 가중치(weight) W, 바이어스(bias) b training data의 정답과 직선 $y = Wx+b$ 값의 차이인 오차(error)는, 오차(error) $=t-y = t-\left [ Wx+b \right ]$으로 계산된다. 오차가 크면 직선의 가중치와 바이어스가 잘못된 것이고, 오차가 작다면 직선의 가중치와 바이어스 값이 잘 설정된 것이므로 ..

머신러닝 2020.07.20

[머신러닝] python matplotlib 사용법 - line plot, scatter plot

matplotlib matplotlib은 다양한 데이터를 많은 방법으로 도식화 할 수 있도록 하는 파이썬 라이브러리. matplotlib를 이용하면 numpy로 만든 자료구조를 쉽게 시각화를 할 수 있습니다. matplotlib를 사용하기 위해서는 우선 matplotlib를 설치하고 아래와 같이 import를 해주어야합니다. import matplotlib import matplotlib.pyplot as plt 실행을 하기위해서는 코드 제일 위에 #%%를 작성해주어야합니다. (VSC 기준) line plot #%% import matplotlib.pyplot as plt x_data = [ x for x in range(-5,5) ] y_data = [ y*y for y in range(-5,5) ] ..

머신러닝 2020.07.19

[머신러닝] 수치 미분 - 편미분, 연쇄 법칙

수치 미분(Numerical Derivative) 이상적으로 주어진 함숫값을 이용하여 도함수의 근삿값을 구하는 것 편미분 (partial derivative) 편미분은 입력 변수가 하나 이상인 다변수 함수에서, 미분하고자 하는 변수 하나를 제외한 나머지 변수들은 상수로 취급하고, 해당 변수를 미분하는 것 ex) $ f(x, y) = 3x + 4xy + y^{2} $ , 변수 x에 대하여 편미분 $$\frac{∂f(x,y)}{∂x} = \frac{∂(3x + 4xy + y^{2})}{∂x} = 3 + 4y$$ 연쇄 법칙(chain rule) 합성함수를 미분하려면 합성함수를 구성하는 각 함수의 미분의 곱으로 나타내는 연쇄 법칙(chain rule) 이용. 합성함수 예시) $f(x) = e^{3x} \Righ..

머신러닝 2020.07.18

[머신러닝] python numpy 함수 선언

import numpy numpy 라이브러리를 선언하는 방법은 아래와 같다. import numpy import numpy as np vector import numpy as np A = np.array([1, 2, 3]) B = np.array([4, 5, 6]) # vector A, B 출력 print("A ==", A, ", B == ", B) # vector A, B 형상 출력 => shape print("A.shape ==", A.shape, ", B.shape ==", B.shape) # vector A, B 차원 출력 => ndim print("A.ndim ==", A.ndim, ", B.ndim ==", B.ndim) # vector 산술 연산 print("A + B ==", A+B) pr..

머신러닝 2020.07.18