[한국코드페어python특강후기] 데이터의 관점으로 생각하기

데이터의 관점으로 생각하기 by 이숙번강사

2019년 한국코드페어 - SW 빌더스 챌린지 오프라인 특강
「데이터의 관점으로 생각하기」 강사: 이숙번 blackdew7@gmail.com

강의 내용

  • 여러 관점으로 데이터 이해하기
  • 데이터와 모델
  • 마법의 공식 Y = WX + b
    마법의 공식에서 w는 가중치이다

    딥러닝은 W과 b값을 스스로 찾는 것




이숙번 강사 소개

파인코드에서 주 4회근무 & 한달에 1번 강연

반 로섬이 파이썬을 만든 이유 : 로컬에서 FILE들을 편리하게 처리하고 싶어서 만든 언어

파이썬은 script, web, data science, machine learning등 다양한 분야에서 강력한 개발 환경을 갖추게 됨




구글드라이브 colaboratory.

python을 다운 받지 않아도 바로 사용할 수 있는 걸 구글이 구글드라이브에 만들어놨음




프로그램이란?

진행 계획이나 순서. 또는 그 목록.
코드(=명령어)를 순서대로 실행시키는 것.




컴퓨터의 구성요소

land gate를 쌓아서 computer가 만들어짐

land gate = universial gate

land gate를 중첩해서 쌓으면 computer같은 효과가 나타남




머신러닝이란?

사람이 패턴을 학습하는 방법을 알아냈고 그걸 컴퓨터에게 알려준 것

패턴에서 가장 중요한 것은 바로 데이터




데이터를 잘 준비하려면,

  1. 데이터에 대해 잘 알기
  2. 데이터 잘 다루기
  3. 데이터 찾고 수집하고 만들기
  4. 데이터 제대로 해석하기
  5. 데이터 관점에서 생각하기

Python을 추천하는 이유는 2~4번까지가 잘 되게 때문임




데이터에 대해 잘 알기

변수 (특징, feature)

다리라는 특징으로 동물이라는 데이터를 표현하도록 만든 것

변수의 타입은 2가지임 : 범주형, 숫자형

ex) 숫자라고 해서 숫자형데이터가 아니다.

예를 들어 month라는 변수가 있을때 1월 2월~12월이라고 해서

12월이 1월의 12배인게 아니니까 -> 이건 범주형데이터고 이걸 정확히 비교해야 데이터를 올바로 이해하는 것임

또 다른 예로 hour가 있다

1시가 6시에 비해 6배가 더 많은 게 아니다

또 다른 예로 rank가 있다

1등급과 3등급이 3배차이가 나는 것이 아니다




차원과 데이터 포인트




2교시 : colab을 통해 딥러닝모델 만들기

내가 준 a와 내가 정해준 b를 loss 줄이게끔 스스로 딥러닝하는 모델을 만드는 거임

그니까 f(x)를 컴퓨터 스스로가 찾는 거임

처음에는 loss가 10,000이었는데 천번째 돌리면 loss가 7300이고 삼천번째 돌리면 loss가 300으로 낮아짐

숫자형 데이터(y = Wx+b) : linear regression리니어 리그레이션 (직선) , 위아래(b)와 기울기(W)를 통해 오차값을 줄인다
범주형 데이터(sigmoid(y = Wx+b)) : logistic regression로지스틱 리그레이션 (곡선) , sigmoid함수안에 오차값이 들어있음(y = Wx+b) , 위아래(b)와 기울기(W)를 통해 오차값을 줄인다




3교시 : 인공신경망

  • 인공신경망은 리니어 리그레이션과 로지스틱 리그레이션을 깊게 쌓아서 개와 고양이를 구분해낼 수 있다.
    • 머신러닝 = 리니어 리그레이션 : y=M(X) 이 수식은 행렬수식이다.
    • 칼럼이 한개 : y = W1X1 + W0
    • 칼럼이 두개 : y = W2X2 + W1X1 + W0
    • 행렬연산은 데이터를 펼쳐놓은 것
    • 칼럼이 늘수록 W렬의 갯수가 늘어난다.
  • 인공신경망을 위해 공부해야할 것 : linear regression리니어 리그레이션 + logistic regression로지스틱 리그레이션 + 행렬 + 미분
  • 우리 뇌에는 cpu가 없다 오직 Neuron으로만 이루어져있다.뉴런의 촉수들이 연결되어있다.
    • input이 중요하다하면(가중치가 높다면) 스스로 다음 촉수로 보내고 가중치가 낮으면 input을 무시한다.
    • relu함수를 통해서 학습이 진행된다.
    • 기존 sigmoid를 통해 앞에서 보낸 신호가 학습이 안되었는데 relu를 이용하여 앞에서 보낸 신호를 학습가능하게 된다.