Machine Learning & Deep Learning/Kmooc

비전공자를 위한 AI 딥러닝 Week. 2 NN과 Perceptron

유방울 2023. 7. 27. 18:17

뉴럴 네트워크 혹은 신경망 : 딥러닝의 핵심적인 모형

뇌의 구조를 본 따 만든 인공 신경망이 학습하는 모형!

 

신경망이 어떤 것을 하는지? 어떻게 학습??

 

뉴런

: 실제로 생각하는 바오롤로지컬 컴퓨팅을 함, 복잡한 메커니즘을 이용해 뇌의 인지기능을 구현암

셀바디 : 뉴런의 핵 - soma쫌마 

Dendrite : 외부로부터 입력을 받아들이는 역할

Axon : 굵은 가지 : 다른 뉴런으로 신호를 전달하는 역할

Synapse : Axon과 다른 Dendrite가 이렇게 가까이 접촉하는 부분

이런 뉴런은 뇌 속에 굉장히 많이 있고 기본적인 뇌의 빌딩블록

 

이 뉴런들이 어떻게 연결되어있는지 연구하고 있음

 

어덯게?

뉴런은 전기적인 동작을 하는지 나와있음

많은 스파이크가 파파파박 튀고 있음

다른 종류의 뉴런들이 어떻게 동장하는지 나타남

Y축은 어떤 뉴런의 멤브레인 포텐셜 즉 내부와 외부의 전압 차이를 측정한 것

이런 전압 차이가 시간에 따라서 변하는 것을 이용해 실제 여러분 뇌에는 인지 작용을 하고 있음

시냅스 : 뉴런들의 끝과 끝이 맞닿아 있는 부분

완전히 접촉되어 있지 않고 약간 사이가 떨어져 있음

그 사이에 뉴런 트랜스미터라는 화학적 물질이 왔다 갔다 함

이 뉴런 트랜스미터가 전달되면 그 정기적인 신호가 한 뉴런에서 다른 뉴런으로 전달됨

사람의 뉴런을 실제로 촬영하고 하나 하나를 구별해서 어떻게 연결되어 있는지 사진을 찍음

뉴런이 모이면 Computation을 할 수 있음

Addition : 한 뉴런에 여러 개의 뉴런이 신호를 줌으로 여러 뉴런들로부터 오는 신호들과 합쳐서 덧셈이 가능

또는 Inhibitor collection으로 다른 뉴런이 발화를 못하게 억제 작용 -> 이는 마이너스 작용임

Multiplication : 외부에서 약한 전기 신호를 받아들이더라도 그 뉴런의 원체 활동성이 높으면 훨씬 더 강한 신호를 옆에 있는 뉴런들로 보낼 수 있음

그래서 받아들인 신호를 증폭함

Modification : 사람의 브레인 셀은 생물학적인 셀 -> 들어오는 신호가 강해진다고 무작정 강해지지 않고 한계 존재

또한 뉴런들의 성질에 따라 Activation이라고 하는데 발화되는 성격이 각각 다름

발화신호가 뉴런의 종류에 따라서 다름!!

 

이런 것들로붙터 영감ㅇㄹ 받아서 만든 모델이 인공 신경망임

 

카메라로 찍어서 고양이 vs 개인지 구별

 

각각의 사진의 픽셀이 신경망으로 들어감 -> 신경망을 통해서 output으로 구별함

출력이 0 -> 고양이, 1-> 강아지

 

인공신경망

층이 여러 개 중첩되어 ㅣ있는 형태 

레ㅇ어드 뉴럴 네트워크

 

왼쪽 input -> 그 다음 레이어로 지나가고 -> 원하는 output

 

supervised learning

예제가 있으면 답이 있음

신경망은 

universal function approximator

: 어떤 입력과 출력의 쌍을 이루는 함수이더라도 신경망을 위해서 효율적으로 만듦

-> 입력의 종류가 어려가지 있음

컴퓨터 비전에는 들어오는 이미지 or 사람이 말하는 것인 보이스 시그널 -> output은 답

입력의 함수를 만들면 원하는 출력을 낼 수 있는 것을 function 

 

사람이 만들었던 머신러닝 모델은 문제가 복잡하면 정확하게 풀 수 없음

why? 자유도가 부족하기 때문

 

신경망은 크게 만들고 학습 잘 시키면 답을 근사할 수 있음

 

레이어드 스트럭처가진 경우 많이 쓰임

 

층이 3개 이상인 것을 딥러닝이라고 함

히든 레이어 개수 + 아웃풋 레이어 개수는 층의 개수라고 함

입력 층은 치지 않음

이는 3 레이어 네트웍

-> 깊으면 딥 뉴럴 네트웍이라고 함

 

가장 간단한 퍼셉트론

input 출력에 따른 한 개의 뉴런만 있는 모형

딥러닝은 딥 뉴럴 네트웍의 학습 방법

 

 

 

--- 

2-2

 

뉴럽이 입력을 받아들여서 더하고 곱하고 변형시키는 작업을 함

 

맥클로츠 엔 피츠 모델 제시

-> 지금의 퍼센트론의 기초가 됨

Warren McCulloach 신경 생리학자

Walter Pitts 아마추어 과학자

 

Input : X0 ~Xn

W0 ~Wn 곱하기 

다른 뉴런에서 오는 강도가 얼마나 강한가를 알 수 있음

 

f(x) 함수를 지나감 = 활성화 함수

 

인공신경망에도 들어온 신호들의 합을 변형함!

 

step funciton : 0보다 크명 1, 작으면 0

시그모이드 함수도 가능

 

출력은 y라는 함수로 나타냄

 

인풋 x 곱하기 w 웨이트 -> 서메이션 b라는 바이어스 상수를 더해줌

b는 0번째 컴포넌트

 

 0이라는 컴포넌트를 1이라는 숫자로 생각

b라는 웨이트를 곱해

 

x라는 인풋 벡터 정의하기

w도 벡터로 나타낼 수 있음

이 두개를 컴포넌트별로 곱해서 더함

벡터 프로덕스 or dot product라고 함

w값을 찾기 위해 학습함

처음 w와 아웃품과의 error를 줄어나가기

gradient descent 공기 예정

 

신경생물학적 시스템에서 학습 way와 비슷함

Hebbian Learning Rule

발화 -> 시냅스 일치 -> 시냅스 강화 = 시냅스 커짐

 

퍼셉트론의 구조 : 복수의 입력과 하나의 계산 뉴런

퍼셉트론의 변형기능과 관련된 구조적 요소는?

activation function

 

XOR은 비선형 문제를 풀이하지 못함

XOR 서킷으로 문제 해결

 

퍼셉트론이 배울 수 있는 연산이 아닌 것은? 2차 함수

퍼셉트론의 한계를 극복하는 방법은? 층을 더 만든다 

 

사이트에서 실습가능

http://playground.tensorflow.org/#activation=tanh&batchSize=5&dataset=spiral&regDataset=reg-plane&learningRate=0.03&regularizationRate=0.003&noise=10&networkShape=5,5,5&seed=0.94071&showTestData=false&discretize=false&percTrainData=70&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=classification&initZero=false&hideText=false

 

Tensorflow — Neural Network Playground

Tinker with a real neural network right here in your browser.

playground.tensorflow.org