MLP [ Multi layer perceptron (NN기초) ]

2021. 9. 15. 21:47ai/Deep Learning

728x90

AI를 구현하기 위한 machine Learning 

- Regression 

- SUM

- Decision Tree

- KNN

- Neural Network             [ NN이 초창기 나머지 위 알고리즘들은 나중에 나왔다 ]

어떻게 생각하는지 모르지만 사람의 뇌의 비슷한 형태로 컴퓨터를 modeling하자는 단순한 생각에서 시작

→ 사람 뇌속에는 신경세포 (neuron) 이 있는데 data를 수집해서 다음 neuron에게 전파해서 사고를 한다

→ 신경세포 : 자극이 들어와서 전달 한다음 결정하고 다음 neuron에게 전달

 

위 사진은 neuron 사진과 비교하면서 보면 logistic 과비슷하다는걸 알수 있다

 

여러 X는 자극

자극에 가중치는 W

모든 자극을 곱하고 부가적인 정보 +b 를 더한다

이렇게 나온 값을 일정량을 넘어가면 다음 neuron에게 전달할지 말지 결정 (Activation [step function])

 

 

퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘입니다. 

 

 

cs에 '회기이론' 에서 AND연산 OR연산이 있는데 simple하게 cpu연산에 basic한 단위

60년대라 사람의 뇌처럼 생긴 perceptron이 and gate , or gate 기타 컴퓨터 회로를 구성하고 있는 여러 gate를 만들수 있으면 생각하는 컴퓨터를 만들수 있을거라 믿었다. 즉 perceptron 으로 computer을 만드니까 가능할거라 생각했다

 

 

And gate : input A , B 가 1 , 1 일때만 output A x B  는 1된다       [ 학습 o ]

 

OR gate :  input A , B 가 0 , 0 일때만 output A + B  는 0된다       [ 학습 o ]

 

XOR(exclusive or연산) gate : input A , B 가 같을때만 output A o안에+ B  는 0된다   [ 학습x ]

 

TRUTH Table (진리표) 위 연산들이 어떤 연산인지 보여주는 표

 

 

1969년 "마빈 민소키" ( MIT. AI Lab[연구소] Fuonder[창시자] )
→ xor을 학습시키려면 단일 perceptron으로는 불가능
→ MLP(Multi Layer perceptron가능) → 수학적 증명으로 적절하게 안된다
→ Machine Learning의 침체기 

 

Perceptron을 logistic으로 표현하면

X W 들이 들어가서 → Linear Regression (Z = W1X1 + W2X2 .. + b) → Classification (Sigmoid) → Y

 

Neral Network ( 신경망 ) [생물학적]

 

자극 input → 뇌의 Neuron 들끼리 전달 → output

 

 

Artificial Newral Newtwork (인공신경망) [cs적]
input(data) →logistic을 층으로본다 (keras) → 
수개 Logistic 끼리 복잡하게 연결 → output 

 

Deep Learning 
→ 1개의 Logistic regression을 나타내는 node를 서로 연결시켜 신경망 구조로 만든 것
→ 일반적으로 입력층 (Input Layer) + 1개 이상의 Hidden Layer(은닉층) + 출력층(output Layer)
→ (output) 여기서 나오는 Error(오차)를 기반으로 각 node가 가지는 가중치를 학습하는 구조

- Deep Learning에서는 은닉층을 1개 이상 사용해서 model의 정확도↑
  (1) 시간이 오래걸릴수 있다
  (2) 과적합(over fitting)
은닉층은 1개가 가장효울이 좋고 그 이상은 좋아지나 dramatic하게 좋아지진 않는다
- node는 내가 customazing

Deep Learning process 개념도

 

(1) Training Data Set → Model
(2) Input Layer(node는 독립변수 갯수 ) →W를 곱해서 넘긴다 
(3) hidden Layer → node는 customazing


    ((1)) +b (linear regression )
    ((2))  sigmoid
    ((3))  a

(4)는 사진과 같이 (3) 작업을 한번더한다고 보면된다
(4) output layer : node는(t의 갯수) / softmax 처리
(5) 결과값 y 출력
(6) loss값 계산 (Cross Entropy)
(7) 부족하면 w, b update해서 다시  / 최적이면 끝
★ 결과적으로는 W, B만 늘어나면서 더 복작해졌다

    값이 조금더 정교해졌다

W의 shape : 앞에서 받은수 행  / 뒤에 보낼 수 열

                 왜냐하면 열로 들어오기 때문에 받는수가 행 / 보내야 되기 때문에 보내는 수 가 열

 

W , B를 더 많이 넣어서 복잡하게 해 정확도를 높인다 = 정교하게 만들어진 식 multi layer

 

'ai > Deep Learning' 카테고리의 다른 글

CNN 기초, 이미지 처리  (0) 2021.09.17
MNINST (Deep Learning 역사 ver) [he's intializer]  (0) 2021.09.17
Deep Learning 역사  (0) 2021.09.16
MNIST Multi layer ver 코드  (0) 2021.09.16
Multi layer (NN기초) 코드  (0) 2021.09.15