https://yuihyun.notion.site/1-c917939293444bdebf7a930479658ed5
유튜브 3Blue1Brouwn 채널의 딥러닝 강의 1장을 보며 생각을 정리한 내용이다.
생각을 정리해볼 필요가 있어서 노션으로 작성했다.
머신러닝이 말이 러닝이지 사실 함수를 커스텀한다는건 머신러닝을 하는 지인들에게 들어서 알고는 있었다. 물론 "알고만" 있었는데... 이번 강의를 들으면서 본질적으로 무엇인지에 대해 좀더 디테일하게 알게 된 것 같다.
머신러닝에서의 "머신"은 X차원 데이터 입력층을 [0,1]^N의 실수 치역, 즉 기계가 답을 내야 하는 질문의 N개의 선택지에 대한 확률적 선택을 출력층으로 반환하는 함수를 의미한다. "학습"은 이 함수의 리턴을 1개의 1과 나머지 0로 양극화시킨 단위벡터로 최적화하는 과정을 의미하며, 선택지 중 하나를 가리키는 단위벡터가 아닌 사잇값을 도출하는 함수는 "아직 학습이 덜 되었다"고 한다. 그리고 그 함수의 선택이 실제 문제의 정답과 높은 적중률을 보일수록 "학습이 잘 됐다"고 한다.
X차원 데이터 입력층을 N개 질문에 대한 대답, N차원 출력층으로 반환하는 함수는 당연하게도 X by N의 행렬이 되며, NX개의 coefficient를 갖게 된다. 즉 이 함수를 "학습"시키는 과정은 NX개 coefficient의 최적화를 의미한다.
하지만 입력층 인풋 data의 디멘션인 X는 끔찍하게 큰 값이고, 따라서 기계학습에는 많은 데이터, 긴 시간이 소요된다. 여기서 인간의 뉴런 구조를 모방한 은닉층, 중간과정의 추가로 '풀기 쉬운 단순한 부분분제'로 분할하고, 각 문제의 솔루션 행렬의 디멘션을 낮춰 학습의 소요를 낮추는 것이 딥러닝이다.
아래의 링크를 참고했다.
https://deep-learning-study.tistory.com/209
'CS' 카테고리의 다른 글
프로세스 메모리의 구조, 동적 할당과 가용 리스트의 관리 (0) | 2022.03.21 |
---|---|
이진 탐색 트리의 한계와 이를 보완하는 Red Black Tree (0) | 2022.03.21 |
Array와 Linked list (0) | 2022.03.21 |
Garbage Collection과 Memory Leak (0) | 2022.03.20 |
Dynamic Programing (0) | 2022.03.20 |