DeepLearning 1

sohee·2022년 9월 26일
0

DeepLearning

목록 보기
1/5
post-custom-banner
  • Artificial Intelligence(인공지능) : 프로그램을 이용해서 인간의 행동을 모방하는 기술
    - 규칙기반 전문가 시스템
  • Machine Learning(머신러닝) : 데이터를 기반으로 컴퓨터 스스로 규칙을 찾아 학습하는 기술
    - 선형회귀, 군집, 결정트리
  • Deep Learning(딥러닝) : 인간의 신경망(뇌구조)을 모방하여 기계가 병렬적 다층 구조를 통해 학습하는 기술
    - 합성곱 신경망(CNN), GAN, 심층 강화학습, 순환 신경망(RNN)
    • 기계는 판단하는 기준이 명확하지만 사람은 대상을 판단하는 경계가 느슨(추상적)
    • 뉴런 : 1개의 Linear Model(선형 모델)
    • 신경망 : 여러 개의 선형 모델을 종합적으로 판단
    • 자연어 처리, 음성합성, 이미지 인식



      1. 딥러닝의 역사

1.1 GAN

Generative Adversarial Network(GAN, 적대적 생성 신경망)

1.2 학습로드맵

Part 1. 퍼셉트론, 다층 퍼셉트론, 오차 역전파
Part 2. 합성곱 신경망, 순환 신경망
Part 3. 이미지 데이터 관련 알고리즘, 음성 데이터 관련 알고리즘, 텍스트 데이터 관련 알고리즘, 생상적 적대 신경망, 심층 강화학습 

2. 머신러닝(선형모델)과 딥러닝

2.1 공통점

2.2 차이점

3. 딥러닝 프레임워크

  • Theano
  • Tensorflow
  • Caffe
  • Keras
  • pyTorch
  • DeepLearniJ
  • Mxnet

3.1 Keras

- 사용자들이 어떻게하면 코딩을 하기 더 쉬울까에 기반하여 만들어진 라이브러리 
- 다양한 뉴럴 네트워크 모델을 지원, 블록 조립식이라 빠른 시간 내 코딩할 수 있는 장점
- 현재는 tensorflow 위에서 keras가 동작하도록 설계되어 있고, keras를 tensorflow 안에 포함시켜 표준 라이브러리로 지원 

3.2 신경망 모델 만들기

1. 신경망의 구조를 설계(병렬적 다층구조)
2. 신경망 학습/평가 방법 설정
3. 모델 학습 진행 및 결과 시각화
4. 모델 평가
  

3.3 Multi Modal

여러 가지 형태와 의미로 컴퓨터와 대화하는 환경
텍스트와 이미지, 영상 등 서로 다른 양식의 데이터를 이해하고 변환하여 사람처럼 배우고 학습
modality : interaction 과정에서 사용되는 의사소통 채널

4. 신경망 모델 생성

4.1 신경망 구조설계(병렬적 다층구조)


# Sequential : 뼈대
# Sequential 대신 다른 방향으로도 생성 가능 

from tensorflow.keras import Sequential
from tensorflow.keras.layers import InputLayer, Dense # Dense : 밀집도 

# 1. 신경망의 구조 설계(병렬적 다층 구조)
model = Sequential() # 뼈대 생성
model.add(InputLayer(input_shape=(1,))) # 입력 특성의 갯수 설정 : 1개의 데이터의 모양의 갯수? 
model.add(Dense(units=3, activation='linear')) # units : 1층의 뉴런 갯수 설정
model.add(Dense(units=3, activation='linear')) # units : 2층의 뉴런 갯수 설정
model.add(Dense(units=1, activation='linear')) # units : 3층의 뉴런 갯수 설정
# 입력이 1개, 출력도 맨 마지막층 1개 
# 입출력 개수가 같으면 학습은 가능 

4.2 신경망 학습/평가 방법 설정

Loss Function

  • 실제값과 예측값의 차이(loss, cost)를 수치화
  • 오차가 클수록 손실 함수 값이 크고, 오차가 작을수록 손실 함수가 값이 작아진다
  • 손실 함수의 값을 최소화 하는 W, b를 찾아가는 것이 학습 목표
  • 회귀 : 평균제곱오차(Mean Squared Error, MSE)
    - 연속형 변수 예측
  • 분류 : 크로스 엔트로피(Cross-Entropy)

Optimizer(최적화)

  • 경사하강법(Gradient Descent)
    - 가장 기본적인 optimizer 알고리즘
    • 경사를 따라 내려가면서 가중치(W) 업데이트
    • 손실함수를 최소화하기 위해 반복적으로 파라미터 조정
    • 학습률(learning rate)가 너무 크면 학습시간이 짧아지거나 전역 최솟값에서 멀어질 수 있음
    • 학습률(learning rate)가 너무 작으면 학습시간이 오래걸리고 지역 최솟값에 수렴
# 2. 신경망 학습/평가 방법 설정
model.compile(loss="mean_squared_error",
              optimizer="SGD")
# 평가방법을 설정하지 않으면 기본적으로 mse로 세팅 

``

```python 
# 3. 모델 학습진행 및 결과 시각화 
studentHistory = model.fit(X_train, y_train, epochs=100)
# epochs = 학습을 몇 번 할지 

# 4. 모델 평가 
model.evaluate(X_test, y_test)
post-custom-banner

0개의 댓글