1. 학문적인 딥러닝
학문적으로 접근 했을 때, 딥러닝은 위의 이미지와 같이
AI 학문이라는 안에 DL 이 속해 있는 파트 입니다.
AI(Artifical intelligence)
과거 1950년대에 AI(인공지능) 라는 학문이 생겼고,
인간의 지능을 갖고 있으며 기능을 갖푼 컴퓨터 시스쳅이며, 인간의 지능을 기계 등에 인공적으로 구현 한 것이라고 말 할 수 있습니다.
ML(Machine Learning)
그러면 ML 은 무엇인가?
1980년대는 데이터가 많아지며 데이터 기반으로 학습을 해보자는 움직임을 통해서 만들어진 파트 입니다.
많은 데이터를 분석하고 가공하여 새로운 정보를 얻어서 어떠한 값을 예측하는 기술 혹은 학문이라고 할 수 있습니다.
예를 들어 행렬로 미지수를 찾는것, if문으로 가장 오차를 적은 수를 찾는 것 등등..
DL(Deep Learning)
2010년대에 폭발적인 성장을 했고, 인간의 뉴런과 비슷한 인공신경망 방식으로 데이터를 분석하는 학문 입니다.
단순히 데티러를 분석만 하지 않고 데이터를 인간의 신경망처럼 학습하여 패턴과 사물의 특성을 파악하여,
결과를 도출해내는 학문이라고 할 수 있습니다.
2. 딥러닝의 간단한 원리는 무엇일까?
8 이라는 손글씨가 이미지가 컴퓨터에게 주었을 때 결과값으로 어떻게 8 이 나올까?
간단하게 설명하면 가운데 딥러닝 모델이라는 것인데,
그 모델에서 학습하여 어떠한 8 이라는 손글씨가 들어와도 8 이라는 결과를 도출 할 수 있습니다.
만약 프로그램으로 한다면 수 많은 if ~ else 문으로 하겠지만,
딥러닝 모델을 활용하면 어떠한 8 손글씨도 정확도가 높은 결과값을 받을 수 있습니다,
추후 코드를 통해서 학습하는 과정과 결과값을 포스팅 할 예정인데,
위의 이미지에서 보면 0부터 9까지 수 많은 손글씨 이미지를 딥러닝을 통해서 학습하여
정확도가 꽤 높은 모델을 얻을 수 있습니다.
인간의 뇌의 원리를 이용한 신경망 네트워크를 통해서 모델을 만들어서 결과를 도출 한다는 정도만
이번 포스팅에서 얻어가면 될꺼 같습니다.
3. 딥러닝의 구조
집값을 예측하는 간단한 모델을 만든다고 가정하면,
x,y 에 해당 값을 좌표에 표시를 하면 오른쪽 이미지가 나옵니다.
여기서 우리가 임의의 값을 면적(x)을 넣었을때 집값이 얼마일까? 라는 결과를 예측하고 싶습니다.
일반적으로 생각 했을때 어떻게 할까요?
그냥 노가다를 하면 됩니다.
계속 숫자을 넣어가면서 노가다로 최적의 직선을 찾으면 끝 입니다. 이것이 딥러닝 입니다.
현실세계에서는 더 복잡한 문제들이 많기 때문에 다양한 기법과 데이터 전처리를 진행하는데
근본적으로 결국 노가다를 통해서 최적을 모델(여기서는 직선)을 찾는 것 입니다.
비용함수
무작정 임의의 숫자를 넣어서 노가다를 하는 것 보다 좋은 수식을 활용해서 조금 덜 노가다 하는것이 좋겠죠?
그래서 나온 것이 '비용함수' (cost funtion) 입니다.
우리가 어떠한 직선(모델)을 만들었는데,
실제 면적 값 = x
실제 집 값 = y
임의의 면적 값 = a
모델 예측 값 = b
라고 했을때, y(실제 집값) 과 b(예측 집값) 의 차이가 0 에 가까울 수록 좋은 모델이라고 할 수 있습니다.
비용함수 구하는 식이 밑에 이미지 입니다.
세타(θ) 0,1 의 값은 무한 노가다를 통해서 임의로 값을 넣은 것 입니다.
값을 넣었을때 오른쪽에 loss 가 나오는데, 그 값이 0에 가까운 값을 무한 노가다를 통해서 찾으면,
좋은 세타 값을 찾을 수 있습니다.그런데 이거를 100번 1000번 하면서 찾는 것은 너무 비효율적 입니다.
어떻게 좋은 세타를 무한 노가다가 아닌 적은 반복으로 세타 값을 찾는 방법은
경사하강법으로 해결 했습니다.
경사하강법
미분을 통해서 경사값이 작아지는 방향으로 이동하면서
좋은 세타 값을 찾아가는 과정 입니다.
밑으로 갈 수록 loss 가 작아지니깐 결국 좋은 모델을 찾을 수 있다는 말입니다.
이 말은 정확도가 높은 모델을 만들 수 있다는 말 입니다.
고등학교 수학 정도만 잘 했다면,
딥러닝을 공부하는 것을 크게 어렵지 않을거라 생각합니다.
저도 많이 부족하지만 딥러닝을 공부하면서 포스팅을 지속하려고 합니다.
저보다 뛰어난 분들이 많다고 생각하기 때문에
많은 지적 부탁드립니다.
혹시 질문이 있다면 댓글 달아주세요!
'AI > 딥러닝' 카테고리의 다른 글
[Ch.01] 03 - Pytorch 를 활용한 간단한 회귀분석 (0) | 2023.01.02 |
---|---|
[Ch.01] 02 - 딥러닝 프레임워크 추천 (0) | 2023.01.01 |
순환 신경망 (RNN) 이란? - BPTT [3편] (0) | 2022.03.13 |
순환 신경망 (RNN) 이란? [2편] (0) | 2022.03.11 |
순환 신경망 (RNN) 이란? [1편] (0) | 2022.03.11 |
댓글