티스토리 뷰
The Perceptron
: 인공 신경망(Aritificial Neural Network, ANN)의 구성 요소(unit)로서 다수의 값을 입력받아 하나의 값으로 출력하는 알고리즘
퍼셉트론은 가중치(weight)와 편향(bias)을 사용하여 입력값에 대한 가중합을 계산하고, 그 결과를 활성화 함수(activation function)를 통해 변환하여 출력한다
x라고 하는 사용자가 제공한 input x1, x2를 어떻게 받아들일 것인가?
정답과 예측하는 값의 차이가 커서 들쭉날쭉하다 ➡️ 학습 시키는 과정이 필요!
z = w1*x1 + w2*x2 + b
The Model
퍼셉트론은 벡터형태로 표현가능하고, 입력값 x와 가중치 w모두 벡터형태로 나타낼 수 있다
입력값 x는 m개의 요소를 가진 벡터로 표현될 수 있습니다. 예를 들어, x = [x1, x2, ..., xm]과 같이 표현할 수 있다
가중치 w 역시 m개의 요소를 가진 벡터로 표현된다. 가중치는 각 입력값에 대한 중요도를 조절하는 역할을 하므로, 입력값의 개수와 동일한 개수의 가중치가 필요하다다. 예를 들어, w = [w1, w2, ..., wm]과 같이 표현할 수 있다
z = w1*x1 + w2*x2 + ... + wm*xm + b
여기서 z는 가중합을 나타내고, b는 편향(뉴런이 얼마나 쉽게 활성화 되느냐)을 의미한다
Perceptron Learning
Perceptron class
class Perceptron(object):
def __init__(self, eta = 0.01, n_iter = 50, random_state = 1):
eta : learning rate
n_liter : epoch
w_ : the weights
errors_ : number of errors for each epoch
Adaline
: 퍼셉트론의 한 종류로 들쭉날쭉한 모델을 개선시키기 위해 개발된 모델
Adaline은 퍼셉트론과 비슷한 구조를 가지지만, active function을 추가해서 cost function을 정의하고 minimize하는 방식
"cost function을 제곱을 최소화한다"
Adaline 모델에서 평균 제곱 오차를 최소화하여 예측 결과와 실제 정답 사이의 차이를 줄이는 것을 의미
이를 통해 모델의 예측 성능을 향상 가능하다
Adaline에서도 Gradient Descent가 사용된다
Adaline에서의 경사하강법은 평균 제곱 오차(cost function)를 최소화하는 방향으로 가중치와 편향을 업데이트
Stochastic Gradient Descent
GD : 전체 gradient 계산해서 한번만 업데이트를 해주는 방식
SGD : training data 하나당 계속 업데이트 ➡️ noise 발생
Mini-batch SGD : GD와 SGD의 중간, 배치 사이즈를 계산해서 set을 통해 w값을 업데이트
'AI > 머신러닝, 딥러닝' 카테고리의 다른 글
[딥러닝] 밑바닥 부터 시작하는 딥러닝 3장 정리 (0) | 2023.07.10 |
---|---|
[머신러닝] 머신러닝 교과서 1장 정리 (1) | 2023.07.08 |
PART 4: Recurrent Neural Network (0) | 2023.03.03 |
PART 3: Convolutional Neural Network (0) | 2023.03.03 |