I can do it!!

He can do! She can do! why cannot me? i can do it!

개발/sk infosec cloud ai 전문가 양성과정

[Keras & Tensorfow] 개념

gogoriver 2020. 10. 2. 18:51

Tensorflow

  • 정의 : google에서 개발하고 공개한 머신러닝/딥러닝 라이브러리
  • 별명 : google에서 무료로 풀어놓은 괴물 (크앙)
  • Tensor란 무엇인가?
    • 데이터를 위한 컨테이너(container)
    • 임의의 차원 갯수를 가지는 행렬의 일반화된 모습
    • 텐서에서는 차원(dimension)을 종종 축(axis)라고 부른다. 
    • 텐서의 축 개수를 rank라고도 부른다.
종류 차원  개념
Scalar 0D   rank 0 tensor 하나의 숫자
Vector 1D   rank 1 tensor 1차원 배열, 연속적인 숫자들의 집합 = 숫자들의 배열
Matirx 2D   rank 2 tensor 2차원 배열, 행렬 형태의 숫자들의 집합 = 벡터의 배열
Tensor 3D   rank 3 tensor 3차원 배열 = 행렬의 배열
  • 핵심 속성
    1. 축의 개수(랭크)
    2. 크기(shape)텐서의 각 축을 따라 얼마나 많은 차원이 있는지를 나타낸 파이썬의 튜플이다.
    3. 데이터 타입텐서에 포함된 데이터의 타입니다.
  • Tensor의 구조
    • 텐서들은 graph구조에서 node에서 node로 전달(flow)된다
      • 그래프 자료구조는 node와 edge로 구성
      • 따라서 node와 edge를 먼저 정의하고 session을 정의!

Keras

  • 파이썬으로 구현된 딥러닝 라이브러리
  • 특징
    • 모듈화
      • 모든 모듈은 독립적으로 실행
      • 모델은 시퀀스 또는 그래프 구성
    • 간결성
      • 간결, 이해하기 쉬움
    • 확장성
      • 새로운 클래스나 함수로 모듈을 쉽게 추가할 수 있다.
  • 학습과정
    1. 데이터 생성
      • 데이터셋으로부터 train, test, 시험셋을 생성, 포맷, 변환 등
    2. 모델 구성
      • 시퀀스 모델 생성, 레이어 추가
      • 케라스 함수 API 사용 가능
      • model의 종류
        • Sequential : 가장 간단한 레이어 모델
          • Sequential 모델로 원하는 레이러를 순차적으로 적재
          • 인공 신경망의 입력, 은닉, 출력층 생성
          • model의 add()를 이용해 단계 추가
          • Dense()
            • fully - connected layer 생성
    3. 모델 학습 과정 설정
      • 학습에 대한 설정
      • 손실함수, 최적화 방법 정의
      • BY compile( )
        • compile() : 모델에 오차함수, 최적화 방법, 메트릭 함수 지정
        • point는 binary일때는 주로 sigmoid, multi일때는 softmax를 사용한다
        • binary일 때 sigmoid를 못 쓰는 것은 아니다. 그러나 주로 sigmoid를 사용한다.
    4. 모델 학습
      • train set으로 
      • fit
        • 모델학습, 오차로부터 매개변수 업데이트
    5. 학습과정 확인
    6. 모델 평가
      • evaluate( ) : test set으로 모델 평가
    7. 모델 사용
      • predict( ) : 임의값에 대한 모델 출력
    8. 저장 및 불러오기
      • save()
        • 인공신경망 모델 저장
      • load_model()
        • 저장된 모델 불러오기