fbpx

인공지능 ( AI ) 주요 용어의 이해

2
4+
5 개월 ago
인공지능과-뉴런

인공지능 주요 용어의 이해

※ 참고로 본 내용은 tensorflow 2.0 에 해당하는 예제입니다.

난수 : 인공지능은 테스트 데이터를 넣기 위해 난수를 발생 시키야 합니다.

예) rand = tf.random.uniform([1], 0, 1)

뉴런 : 입력과 출력사이에서 존재하는 모르는 부분을 의미합니다.
이 뉴런의 집합을 레이어라고 하며, 이런 히든 레이어(hidden layer)가 3개 이상 존재하면 보통 딥러닝이라고 명명합니다. 

뉴런은 전체 입력, 출력, 모르는 부분 이 형태와 같이
입력 X, 가중치 w, 활성화함수 f, 출력Y 으로 구성됩니다.

즉 활성화함수 Y = f(X*w) 입니다.

인공지능과-뉴런
https://excelsior-cjh.tistory.com/172 참조

활성화함수 : 시그모이드 ( sigmoid; S자 형태의 곡선), ReLU ( Rectified Linear Unit; 정류된 선형 함수)

시그모이드는 출력값을 0~1 사이로 제한
ReLU 는 양수를 그대로 반환, 딥러닝에서 선형함수는 y=x 라는 식으로 정의할 수 있는 입력과 출력이 동일한 함수를 의미합니다. 이 함수를 정류해서 음수 값을 0 으로 만든 것이 ReLU 입니다.

뉴런의 학습 : 에러가 0 에 가까워지게 출력으로 기대값에 가까운 값을 얻는 것

딥러닝 모델을 학습시킨다는 의미는 딥러닝 모델이 가지고 있는 뉴런들의 가중치(weight)을 조정한다는 의미이고, 우리는 모델 구성과 가중치만 저장만 해놓으면, 필요할 때 저장한 모델 구성과 가중치를 불러와서 사용하면 됩니다

# 학습을 저장하는 방법 ( Keras )
model.save(‘mnist_mlp_model.h5’)

# 모델 아키텍쳐 보기 ( model_to_dot )

from IPython.display import SVG
from keras.utils.vis_utils import model_to_dot

%matplotlib inline

SVG(model_to_dot(model, show_shapes=True).create(prog=’dot’, format=’svg’))

참조 문서 : https://tykimos.github.io/2017/06/10/Model_Save_Load/

1. 불러오기

from keras.utils import np_utils
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Activation
import numpy as np
from numpy import argmax

2. 실무에 사용할 데이터 준비

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_test = x_test.reshape(10000, 784).astype(‘float32’) / 255.0
y_test = np_utils.to_categorical(y_test)
xhat_idx = np.random.choice(x_test.shape[0], 5)
xhat = x_test[xhat_idx]

3. 모델 불러오기

from keras.models import load_model
model = load_model(‘mnist_mlp_model.h5’)

4. 모델 사용하기

yhat = model.predict_classes(xhat)

for i in range(5):
print(‘True : ‘ + str(argmax(y_test[xhat_idx[i]])) + ‘, Predict : ‘ + str(yhat[i]))

아래의 예에서 보듯이 실행할때마다(i 가 증가) 에러(error) 는 0 에 가까워지고 있고, output은 1(true)에 가까워지고 있다. (학습)

텐서플로 2.0 참조
참조 : 텐서플로 2.0 프로그래밍

경사하강법(경사감소법)

비용함수값이 최소가 되게 하는 w와 b를 찾는 것이 목적

초기 w 값에서 최적의 w 를 찾기위한 학습

모델 : tf.keras 에서 딥러닝 계산을 간편하게 하기 위한 추상적인 클래스

kf.keras 에서 model 은 딥러닝을 계사하는 가장 핵심적인 단위임

시퀸셜 모델 : tf.keras.Sequential 구조 ( 모델에서 가장 많이 쓰이는 구조임 )

시각화 : 학습이 잘 되고 있는지 확인하기 위한 측정치 (metric) 변화량을 나타내는 선 그래프

데이터 분석 방법

회기(Regression; 되돌아오다) : 머신러닝의 데이터 분석 방법
가격이나 확률처럼 연속된 실수값을 정확히 예측하는 것이 목적임

분류(Classification) : 머신러닝의 데이터 분석 방법
유사한 것들을 같은 범주로 묶어서 판단하는 방법
> 이항분류, 엔트로피와 정보이론
> 다항분류
> MNIST (손글씨 숫자 데이터세트 )

컨볼루션 신경망 ( Convolutional Neural Network; CNN ) : 이미지뿐 아니라 텍스트나 음성 등 다양한 분야의 데이터 처리에 사용

순환 신경망 ( Recurrent Netural Network ; RNN ) : 순서가 있는 데이터를 입력으로 받고, 같은 네트워크를 이용해 변화하는 입력에 대한 출력값을 얻는 방식

SimpleRNN 레이어

LSTM 레이어

GRU 레이어

임베딩 레이어

자연어 생성

단어 단위 생성

자소 단위 생성

사전 훈련된 모델 다루기

텐서플로 허브

전이학습

신경 스타일 전이

오토인코더

인코더

디코더

잠재변수

MNIST 데이터셋 적용

클러스터링

초해상도 작업 (Super Resolution)

이미지 분할

강화학습

신경망 경험 학습

큐러닝

딥 큐러닝

2 comments

  1. Phasellus mollis est in enim lobortis porttitor. Maecenas at eros orci. Etiam aliquam nunc vitae lorem elementum sit amet pulvinar nunc venenatis. Quisque lobortis volutpat risus, et sagittis mauris sodales nec. Sed et mi ac nisl placerat pharetra. 🙂

    Nicole said on 2018-04-05 at 8:55 오전 응답
    0
  2. Mauris maximus, quam sit amet dignissim rhoncus, eros nibh facilisis orci, in vestibulum velit ante sit amet purus. Pellentesque hendrerit commodo lectus sed aliquet. Aenean malesuada, lectus quis tristique tincidunt, purus ex faucibus ipsum, nec tristique lacus purus eu purus. Vivamus faucibus eleifend vehicula.

    Quintin said on 2019-02-16 at 4:00 오후 응답
    0

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다