계산된 가중합을 얼마 만큼의 신호로 출력할지를 결정
가장 간단한 활성화 함수인 계단 함수는 입력값이 임계값(여기서는 0)을 넘기면 1을, 그렇지 않으면 0을 출력하는 함수
가중합 연산값을 0~1 사이의 확률값을 나타내는 함수
어떤 사건이 일어났을 때 결과가 발생한다(1)와 하지 않는다(0)으로 분류
기울기 소실 문제를 해결하기 위해 은닉층에서 사용
가중합 연산값이 양수면 값을 그대로 출력하고 0이하면 0을 출력
x < 0 일 때 y = 0
가중합 연산값들을 합이 1인 확률 분포 값으로 변환하는 역할
클래스가 최소 3개 이상일 때 사용
모든 활성화 함수의 공통점은 비선형(Non-linear)이라는 점
층을 아무리 깊게 쌓아도 여러 층을 쌓는 이점을 살리지 못하게 됨
여러 층을 쌓을 때의 장점을 살리기 위해 비선형 함수를 사용하게 된다
AND, NAND, OR, XOR
AND = 둘 다 참이면 참
NAND = AND 결과값의 반대
OR = 둘 중 하나라도 참이면 참
XOR = 둘의 값이 다를 때 참, 같다면 거짓
퍼셉트론을 이용해 XOR Gate(배타적 논리합)문제를 해결할 수 없다는 한계가 존재
여러 퍼셉트론을 이용해 신경망을 복잡하게 구성할수록 더욱 복잡한 문제를 해결할 수 있음
입력층 : 데이터셋을 입력하는 층, 데이터셋의 특성(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)'