미래연구소 14기 수원캠퍼스 9주차 (2020.09.03)

Saulabi·2021년 11월 23일
0

미래연구소

목록 보기
9/12

미래연구소

이제 9주차 부터 진행할 프로젝트를 위한 Python 라이브러리인 Matplotlib과 pandas를 배워보았다.

이들은 주로 데이터 분석과 시각화를 위한 라이브러리로 쓰인다.

Matplotlib

  • 사용방식에 3가지가 있다.
  1. State-machine
  • pylab
  • state-machine pyplot
  1. Object-oriented

  2. 1번 + 2번

  • 기본 용어

https://blog.kakaocdn.net/dn/ewqyNW/btqP9sTCrXJ/Ck9YttnnkDBbHgrRtttlYk/img.png

RNN ( Recurrent Neural Network )

RNN은 여러 개의 cell 로 이루어져 있다.

  • 이전의 값을 기억하여 다음 값에 영향을 준다!

  • RNN의 종류

  1. one to one

https://blog.kakaocdn.net/dn/YGDrw/btqPYSsPBxS/HbEWUakeuD1OkjbI6CXKF1/img.png

  • Fully-Connected Layer
  1. one to many
  • Image Captioning

https://blog.kakaocdn.net/dn/tvttx/btqQfKsr4bH/Jl6veoTycI0Z0Q6ANrbZWk/img.png

sequential하지 않은 data(image)를 input으로 받고 sequential한 output(text)을 출력

  1. many to one
  • Sentiment Classification

https://blog.kakaocdn.net/dn/HBP83/btqPZKnIZCb/HVy4eXjoPAbk0kkAK1psfK/img.png

  1. many to many
  • Machine Translation

https://blog.kakaocdn.net/dn/MSF4R/btqP6oquccl/SZAEIi28KooLodMLNiPoG0/img.png

문장을 끝까지 읽은 시점부터 번역된 문장을 출력

  1. many to many
  • Video Classification

https://blog.kakaocdn.net/dn/DsoAD/btqQbGKRhSx/TlJXfqnlrD0EIR6kvJ9HfK/img.png

(아까와 달리 영상을 다 본 시점까지 가지 않고) 과거 부터 현재까지의 image를 통해 output값을 출력

RNN의 용어 정리

https://blog.kakaocdn.net/dn/dmQqdW/btqP9rNU9CK/cYRhXKwLxwKKrsyIwGhcz1/img.png

  1. sample : sample의 개수 ( 1회 train 기준 = batch_size )

  2. time_step = input_length : 어느 정도의 시간을 고려할 것인가

  3. input_dim : input data의 feature 수

  4. cell 연산

https://blog.kakaocdn.net/dn/VAlxd/btqPZJoVGqD/6Kjd5AULk8pNZKyq1z4K50/img.png

https://blog.kakaocdn.net/dn/c7g448/btqPZJCsBnQ/oKM5ilo4uvictR2uQj3nzK/img.png

  • input 연산

https://blog.kakaocdn.net/dn/oiYA6/btqP6n6caG3/dcvKrC8KlS2MIak7KbjUK0/img.png

  • hidden_state 연산

https://blog.kakaocdn.net/dn/4Otd0/btqQbETNCAa/vHbVKNuF4js6M1SOE8k991/img.png

  • activation function

https://blog.kakaocdn.net/dn/dLa5dQ/btqP10DEx5m/9KIHr3ubaiTo6uC3G4mkuK/img.png

  1. output 연산
  • return_sequences = False

https://blog.kakaocdn.net/dn/cxC3JN/btqP4ml7I8w/CDh3JFT6YRihkQvfWaGO21/img.png

  • return_sequences = True

https://blog.kakaocdn.net/dn/M3kTh/btqP9se09TO/MIqK728zu22B6JBteXHeKK/img.png

  1. 기타

https://blog.kakaocdn.net/dn/sQT2J/btqP9se09F9/yJHNdPVSYKiMCxJpXAfir0/img.png

  • Wxh, Whh, Why 모두 동일 layer에서는 그 값이 동일하다.
  • return_sequences를 통해 output의 dimension을 input과 같게 할 수 있고 이를 통해 Reccurent Layer를 더 붙일 수 있다.

...

  • LSTM
  • GRU

Metrics

  • Loss

https://blog.kakaocdn.net/dn/cxa1zR/btqP9se09E9/GoHyaF7O59CCALLXKLl7Dk/img.png

  • Regreesion
  1. mean absolute error

https://blog.kakaocdn.net/dn/Ah5Jk/btqQbFLWAfs/VdvcOVSqE1Gc1dLJk0BDVk/img.png

  • 특이값 ( outlier ) 에 robust ( 덜 영향 받는다. )
  • 절댓값을 취하기 때문에 차이를 직관적으로 느낄 수 있다.
  1. root mean square error

https://blog.kakaocdn.net/dn/B7GP2/btqPYSzABOQ/MNYK0hxePorYo3nbzQ6OT0/img.png

  • 특이값에 더 가중치를 둔다.

  • MAE보다 더 보편적으로 사용한다.

  • mse에 np.sqrt를 붙이는 방식으로 구현

  • Classification ( precision, recall )

ex)

https://blog.kakaocdn.net/dn/bkdxuV/btqP0sAoEkV/DxxDHM5IDjDlAWfBw8b4E0/img.png

  1. Precision : positive판정이 맞을 확률

ex) 암 판정 중 실제 암일 확률

https://blog.kakaocdn.net/dn/cMejDD/btqPZIQ4wAy/ZmIqJ9F73USaRkL1eDA6H1/img.png

https://blog.kakaocdn.net/dn/OrYN7/btqP4kBP7eh/Vit8a1OlnXLklMkMcOAoek/img.png

대략 : 40%

  1. Recall : positive사건이 잘 맞았는지

ex) 암 환자 중 암을 진단받을 확률

https://blog.kakaocdn.net/dn/xzT1H/btqP4msXLWV/Svyke8PhaM5I2qlk8FliIk/img.png

https://blog.kakaocdn.net/dn/dqNHxn/btqP4lHxc3P/cxShGyXIyUoNxPq8BJHTk0/img.png

대략 : 22%

  1. Data imbalance

https://blog.kakaocdn.net/dn/Gf0xl/btqQfLx6Nv7/K7pwGaDV1OR6YYdrTSlDk0/img.png

: 잘못된 metric -> 오류 파악하지 못함

해결 : case 맞는 metric 설정

  1. metric 결정

data balance check

  • Yes : Accuracy 사용

  • No : F1_score 사용

0개의 댓글