퍼셉트론 - 학습이란 무엇인가?

이현근·2023년 12월 12일
0

AI 모델을 학습시킨다?

Q : AI 가 학습이란것을 어떻게 하나요?
A : 주어진 데이터의 특징과 패턴을 모델에게 알려주는 것
Q : 그걸 어떻게 알려주나요?
A : ...

뉴런과 퍼셉트론

뉴런

  • 수상돌기(dendrites)를 통해 다른 뉴런에게서 신호를 받는다
  • 일정수준 이상의 신호가 오면 축삭(Axon)으로 신호를 보낸다

퍼셉트론

명칭기호명칭(영어)
입력xinput
가중치wweight
편향bbias
출력youtput
활성함수fActivation Function
y=f(xw+b)y = f(\sum{xw+b})

활성함수가 아래와 같으면

def step_activation_function(x):
	if x>1:
    	return 1
    else:
    	return 0

xw+b\sum{xw+b} 가 1이 넘어가면 y로 신호를 보낼 수 있게 되고 그보다 작으면 신호를 보내지 않는다.

실전

인풋을 2개를 받아 Step Activation Function을 타고 결과를 주는 퍼셉트론을 만들었다

우리의 모델이 다음의 데이터를 학습하였으면 좋겠다. 좌표로 표현하면

이렇게 생겼는데 주황과 초록을 잘 구분하여 주는 아름다운 붉은 선을 찾았으면 좋겠다.
그럼 파랑(4,4)는 어떤색으로 분류하게 될지 기대가 된다.

w의 초기 가중치를 둘다 1이라고 가정하면 다음과 같다.

붉은 경계선이 너무 하단에 그려져 모두 주황색으로 판단하는 상태이다

Loss 를 구해서 optimize 해줘야하지만 나중에 설명하도록 하고
가중치를 적절히 변경시켜보겠다.

w1=0.5,w2=0.5w_1=-0.5,w_2=0.5 일때 원하는 결과값을 준다


물론 4,4 는 초록으로 분류해 버리게 되었다.

그래서 학습이 무엇인가

모델의 가중치 W(weight)를 변경해나가는과정
데이터를 통해 경계선을 잘 그려주는 weight 를 찾는것

여담

퍼셉트론은 xor 문제는 해결이 안된돠.
기본적으로 선 1개를 그리는 방법

빨간선이나, 노란선 모두 빨간원과 초록원을 구분지을 선을 그을수 없다.
다층 퍼셉트론을 쓰면 복잡한 문제도 해결할 수 있다.

멀티레이어 퍼셉트론 [MultiLayer Perceptron, MLP)

지금은 웨이트가 2개인 퍼셉트론이지만
인풋이 10개라면 웨이트가 10개..
이런 퍼셉트론이 열개 + 결과가지고 한번더 퍼셉트론을 지난다면
10*10+10 = 110개!
이제 손으로 할수는 없다..

직선아니다.. 더 복잡한 문제라면?

다루지 않은 부분

  • 손실함수 Loss Function
    내가 찾은 선(weight)이 얼마나 틀렸는가? 어떤 기준으로 틀렸는가
  • 옵티마이저 Optimzier
    얼마만큼 변경할것인가?
  • 역전파 Backpropagation
    틀렸는데 weight 하나가 어느정도 영향을줬는지 어떻게 알려주나?
  • 행렬로도 나타낼 수 있는데..

뉴런사진 출처 : https://x.com/NimbleBoxAI/status/1547617450451435521?s=20
복잡한 문제 사진 출처 : https://training.galaxyproject.org/training-material/topics/statistics/tutorials/clustering_machinelearning/tutorial.html
참고자료 : https://wikidocs.net/24958

profile
사짜 Vision AI 개발자

0개의 댓글

관련 채용 정보