본문 바로가기

딥러닝 & 머신러닝/강연

그래비티 클래스 1주차 강의 내용 정리

고등학교 친구가 운영하는 데이터사이언스 및 딥러닝 입문 강의를 지난 3월 한 달 동안, 일주일에 한 번씩 들었습니다. 강의에서 듣고 난 후 미처 제가 몰랐던 것들 위주로 블로그에 정리하려고 합니다! 딥러닝 기초에 대해선 이제 어느 정도 안다고 생각했는데, 공부하면 할수록 제가 모르는 것은 계속 나오네요 ㅎㅎ


데이터 사이언스:

통계 관련 지식 주로 많이 필요하고, 데이터를 모았을 때 데이터를 해석할 수 있는 모델을 설정해야 한다.

 

데이터 엔지니어링:

코딩을 잘해야한다. 엄청나게 많은 데이터를 빠르게 처리할 수 있도록 프로그램을 만드는 것

필요한 기술: GPU와 분산처리, 컴퓨터를 최대한 부려먹을 수 있도록 연구하는 것

 

데이터 애널리시스:

경영 전공 중요. 데이터에 관한 지식이 많아야 한다. 데이터를 이용해서 돈을 버는 것.

 

AI:

실제 인간처럼 가만히 둬도 알아서 하는 것.

 

전문가 시스템:

8, 90년대에 유행. 하나의 정해진 역할만 잘하는 것. (ex. 챗봇 – 정해진 질문에만 답)

 

머신러닝:

알고리즘 – 방법을 주면 답을 100%로 맞춰야 함. 프로세스가 다 정해져 있음.

머신러닝 – 데이터를 주면 거기 안에서 규칙을 찾게 함. (1-홀수, 2-짝수 등등을 백 만개를 준 다음에 거기 안에서 2로 나누면 될 것 같다는 규칙을 찾기 바람)

 

딥러닝:

기계학습 방법 중에 DNN을 쓰는 것. 머신러닝 방법들보다 성능 좋음.

머신러닝은 feature extraction을 우리가 해줘야 하는데 (얘가 뭘 봐야 하는지를 알려줘야 함), 딥러닝은 feature extraction을 알아서 해준다. (그냥 이미지만 던져주면 된다)

 

feature:

내가 이 데이터에서 ‘중요하게’ 봐야 할 것. (오토바이와 차의 feature가 다르듯이) 어떤 feature로 표현되는지가 중요하다. feature를 vector로 표현한 게 feature vector. feature vector가 있는 공간이 feature space. feature의 종류만큼 차원이 나온다. ex. 비만인지 아닌지를 판단: 키, 몸무게, 성별이라면 3차원. 이 3이라는 숫자를 정해주는 게 feature engineering이고 3 같은 게 hyper parameter

 

hyper parameter:

‘학습을 진행하기 전에 우리가 정해줘야 하는 parameter’ (환경 세팅), 학습의 ‘결과’가 parameter

 

Data Split:

내가 ‘모르는’ 데이터 (unseen data)를 맞추기 위해서.

ex) 교수 관점에서 학생인 모델을 훈련 시킨다고 가정 - 훈련: 모의고사, 검증: 모의고사 마지막 회, 테스트: 기말고사, unseen data: 실제 산업현장

 

* 엔드 투 엔드: 인풋을 넣으면 바로 아웃풋이 나오는 것. ex) 구글 번역기

 

ML의 정의:

패턴을 찾아낸다는 건 feature extraction과는 다르다. ex. feature extraction은 Conv 필터가 자동으로 한다고 생각. 패턴을 찾아낸다는 건 얘가 고양이인지 개인지 분류하는 것. ML은 feature extraction은 사람이 해줘야 하고 패턴은 스스로 찾아준다. DL은 feature extraction도 스스로 하고 패턴도 스스로 찾아준다.

 

LINEAR CLASSIFIER:

f(): 모델 10개의 숫자: 이 이미지일 확률 10개를 뽑아줌. 여기서 hyper parameter: 3072, 10. b가 없으면 일차 함수가 원점만 지난다. 학습이란 W에 있는 숫자 12개와 b의 숫자 3개를 ‘찾는’ 과정이다. x는 데이터.

 

10개의 종류를 분류한다: 분류란 W와 b를 찾는 과정이므로 분류 직선 10개를 찾는 과정

 

SVM:

뭔가 가장 애매한 애들을 기준으로 정확히 반 나누는 clear한 선을 찾는 게 SVM이 하는 일

그 애매한 애들이 서포트 벡터. 안정적이다 = robust 하다. 결정 경계 = 곧 classifier

그 boundary를 찾으면, 얘가 빨간색인지 파란색인지 어떻게 찾는가? f(x,W) = Wx+b 에다가 x를 대입해 계산한 후 그게 선 위에 있는지 아래에 있는지를 본다.

 

퍼셉트론: 뉴런의 구조를 딴 것

 

XOR: 같으면 0이고 다르면 1이다. - 선형 분류기인 퍼셉트론이 직선 하나로 이걸 못 푼다.

-> 멀티 레이어 퍼셉트론(여러 개의 퍼셉트론)으로 해결. 나(직선)를 기준으로 위에 있느냐 아래에 있느냐?

 

가중치 주황색이 20, 가중치 파란색은 –20. (그림을 봐야 하는데, 강의 자료는 여기 올릴 수 없습니다 ㅠ)

시그마(활성화 함수): 괄호 안에 있는 것들이 어떤 걸 넘어서는지 판단해줌. 넘어가면 1, 아니면 0이 나오는 식으로 찾는 것. 여기서 시그마의 판단 기준: 0보다 작으면 0, 0보다 크면 1. 결론적으로 (0,0),(1,1)은 -, (1.0),(0.1)은 +라는 것을 각각 0,0,1,1로 ‘분류’할 수 있게 됐다.

 

node(동그라미를 하나 통과하면)는 scalar value(하나의 숫자)를 가짐.

hidden layer가 두 개 이상이면 딥러닝. 히든 레이어에서 쓰는 활성화 함수는 다 같은 걸 쓴다. 사람의 신경망도 자극을 다음 돌기로 전달해줄 때 모두 같은 규칙으로 전달한다는 것 때문에.

 

 

신경망 그리기 실습