티스토리 뷰

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값을 업데이트

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함