인공신경망

seongyong·2021년 6월 8일
0

딥러닝 기초

목록 보기
1/4

학습내용

ANN(Artificial Neural Network) 개념정리

퍼셉트론 : 신경망을 이루는 가장 기본 단위, 다수의 신호를 입력으로 받아 하나의 신호를 출력

신경망 : 다수의 input을 layer에서 weight를 주어 계산하고 그 값을 activation function을 통해 변환하고 다음 layer로의 값 전달여부를 결정하는 과정.

신경망 학습 : 초기의 weight를 결과값에 맞추어 변화시키는 과정

XOR : 입력신호가 다를 때 1을 출력

activation function : 데이터를 비선형으로 변환시켜줌, sigmoid / ReLU

layer별 가중치 shape 기억하기, 제일 처음 input : (1,n)

  • 입력층
    신경망의 층수를 셀 때 입력층은 포함하지않는다.

  • 은닉층
    2개 이상의 은닉층을 가지는 신경망을 딥러닝이라고 한다.

  • 출력층
    - 회귀 문제에서는 활성화함수가 필요하지않다.
    - 이진 분류 문제의 경우 시그모이드 함수를 사용해서 출력을 확률 값으로 변환가능
    - 다중클래스 분류의 경우 출력층 노드가 클래스 수 만큼 존재하며 소프트맥스 함수를 사용가능(수식넣기)

tensorflow 설치
!pip install tensorflow-gpu==2.0.0-rc1

tensorflow 코드

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
# 1.
model = Sequential()
model.add(Dense(8, input_dim=4, init='uniform', activation='relu')) #input_shape=(,4) 이런식으로도 지정가능, init은 초기 weight 잡아주기

import tensorflow as tf
# 2. 
model = tf.keras.models.Sequential([
	tf.keras.layers.Flatten(input_shape=(28,28)),
	tf.keras.layers.Dense(100, activation='relu')])
    
#결과 보기
model.fit(X_train, y_train, epochs=10, validation_data = (X_test, y_test))
model.summary()
test_loss, test_acc = model.evaluate(X_test, y_test, verbose=2)
  • 용어정리

loss function : 결과값이 원래값과 얼마나 차이가 나는지를 계산해주는 함수

optimizer : 결과값을 보고 가중치를 업데이트 해야하는데 어떤 방식으로 업데이트할지??

batch size : 한번에 얼만큼의 데이터를 사용하여 학습할 것인지

epoch : 전체 트레이닝 셋이 순전파와 역전파를 거친 학습횟수

iteration : 1-epoch를 마치는데 필요한 파라미터 업데이트 횟수, 미니배치

머신러닝 딥러닝 큰 차이점 : 딥러닝은 데이터에서 필요한 특성들을 신경망이 알아서 조합해 찾음.

  • loss function
    • categorical_crossentropy : 출력값이 one-hot encoding된 결과로 나온다.
    • sparse_categorical_crossentropy : 출력값이 integer type
    • binary_crossentropy

0개의 댓글