[한국코드페어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같은 효과가 나타남
머신러닝이란?
사람이 패턴을 학습하는 방법을 알아냈고 그걸 컴퓨터에게 알려준 것
패턴에서 가장 중요한 것은 바로 데이터
데이터를 잘 준비하려면,
- 데이터에 대해 잘 알기
- 데이터 잘 다루기
- 데이터 찾고 수집하고 만들기
- 데이터 제대로 해석하기
- 데이터 관점에서 생각하기
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를 이용하여 앞에서 보낸 신호를 학습가능하게 된다.