[N311] 퍼셉트론과 활성화함수

정진우·2023년 4월 18일
0

Codestates_AIB

목록 보기
1/8
post-thumbnail

스프린트 1

활성화 함수

계산된 가중합을 얼마 만큼의 신호로 출력할지를 결정

계단 함수(Step Function)


가장 간단한 활성화 함수인 계단 함수는 입력값이 임계값(여기서는 0)을 넘기면 1을, 그렇지 않으면 0을 출력하는 함수

시그모이드(Sigmoid Function)

가중합 연산값을 0~1 사이의 확률값을 나타내는 함수
어떤 사건이 일어났을 때 결과가 발생한다(1)와 하지 않는다(0)으로 분류

렐루, ReLU(Rectified Linear Unit)

기울기 소실 문제를 해결하기 위해 은닉층에서 사용
가중합 연산값이 양수면 값을 그대로 출력하고 0이하면 0을 출력
x < 0 일 때 y = 0

소프트맥스(Softmax)

다중 분류 문제를 해결하기 위한 활성화 함수

가중합 연산값들을 합이 1인 확률 분포 값으로 변환하는 역할
클래스가 최소 3개 이상일 때 사용

활성화 함수의 공통점

모든 활성화 함수의 공통점은 비선형(Non-linear)이라는 점
층을 아무리 깊게 쌓아도 여러 층을 쌓는 이점을 살리지 못하게 됨
여러 층을 쌓을 때의 장점을 살리기 위해 비선형 함수를 사용하게 된다

논리게이트, Logic Gate

AND, NAND, OR, XOR
AND = 둘 다 참이면 참
NAND = AND 결과값의 반대
OR = 둘 중 하나라도 참이면 참
XOR = 둘의 값이 다를 때 참, 같다면 거짓

Linear separability

퍼셉트론을 이용해 XOR Gate(배타적 논리합)문제를 해결할 수 없다는 한계가 존재

MLP(Multii-Layer Perceptron)

인공 신경망, ANN(Artificial Neural Network)

여러 퍼셉트론을 이용해 신경망을 복잡하게 구성할수록 더욱 복잡한 문제를 해결할 수 있음

인공 신경망의 구조

입력층 : 데이터셋을 입력하는 층, 데이터셋의 특성(Feature)의 개수만큼 노드(Node)의 개수
은닉층 : 입력된 데이터를 통해 가중치,편향 연산이 진행되는 층
출력층 : 연산을 마친 최종 결과값을 내보내는 층, 문제에 따라 노드의 개수를 설정

출력층의 노드 수와 활성화 함수

활성화 함수와 노드의 개수는 층마다 설정할 수 있으며 인공 신경망을 통해 풀고자 하는 문제에 따라 다르게 적용해야 한다
회귀, 이진 분류, 다중 분류

딥러닝이란?

인간이 계산 가능한 수준이라면 딥러닝이라 하지 못한다
컴퓨터가 계산할 정도의 복잡도가 있어야 한다

model = tf.keras.models.sequential()	
model.add(tf.kreas.layers.Flatten(input_shape=(28,28)))
model.add(tf.keras.layers.Dense(100, activation='relu'))
model.add(tf.keras.layers.Dense(10, activation='softmax'))`
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['acuuracy'])

model.fit(X_train, y_train, epochs=5)'
profile
ㅋㄷ

0개의 댓글