1. 딥러닝의 정의
- 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화
(abstractions, 다량의 데이터나 복잡한 자료들 속에서 핵심적인 내용 또는 기능을 요약하는 작업)를 시도하는
기계 학습 알고리즘의 집합
- 큰 틀에서 사람의 사고방식을 컴퓨터에게 가르치는 기계학습의 한 분야
(머신 러닝의 범주 안에 속함.)
2022.01.06 - [Programming Python/Part1. Basic Knowledge] - 머신러닝(Machine Learning)의 정의 와 분류
2. 딥러닝의 역사
- 우리가 아는 딥러닝은 역사를 거슬러 올라가면 1940년대까지 올라가야함.
- Perceptron 의 개념이 토대로 많은 발전을 거듭해 오지만, 1970년대에 Xor 문제의 벽에 부딪히게되면서
암흑기가 찾아옴
※ 퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로
다수의 입력으로부터 하나의 결과를 내보내는 알고리즘입니다.
- 그 암흑기를 탈출시켜준 개념에 Backpropagation임
※ 오차역전법은 동일 입력층에 대해 원하는 값이 출력되도록 개개의 가중치를 조정하는 방법으로 사용되며,
속도는 느리지만 안정적인 결과를 얻을 수 있는 장점이 있어 기계 학습에 널리 사용되고 있다.
- 그 후 Hidden Layer의 수를 늘려가면서 정확도가 매우 높아지면서 각광받기 시작함.
3. 딥러닝 대표 프레임워크
1) 텐서플로우(TensorFlow)
- 구글에서 만듬. 핵심 코드가 C++로 작성
- 직관적인 고수준 API
( 처음에는 할만해 보이지만, 깊이 배워가면 갈수록 장벽이 높아짐을 느낌)
2) 캐라스(keras)
- 텐서플로우 보다 쉬운 API
(백엔드로 텐서플로우 활용 가능)
- CPU, GPU를 동일 코드로 사용 가능.
3) 파이토치(pytorch)
- Facebook 에서 만듬.
- C/CUDA Backend 사용 가능
- 텐서플로우에 비하면 많이 낮은 진입 장벽
- 예전에는 텐서플로우를 많이 사용하였으나, 요즘은 파이토치를 많이 쓰는 중
(논문 인용 건수로 볼때 많이 상승)
4. 딥러닝...곧 신경망(Neural Network)
- 딥러닝에서는 신경망을 빼놓을 수가 없음. 왜냐하면 퍼셉트론은 실제 뇌를 구성하는 신경 세포 뉴런의 동작과
유사하기 때문임.
- 뉴런은 가지돌기에서 신호를 받아들이고, 이 신호가 일정치 이상의 크기를 가지면 축삭돌기를 통해서 신호를 전달함
- 위 그림처럼 딥러닝 신경망도 가지 돌기에서 신호를 받듯이 x값을 받고, 그에 대한 가중치 w를 이용하여
y를 결정하는 것.
- 이것을 조금 더 정교하게 꾸며가면 아래의 그림과 같은 형태의 우리가 자주 보는 딥러닝 신경망 구조가 됨.
※ 인공 뉴런(Artificial Neuron)
: 노드(Node)와 엣지(Edge)로 표현
하나의 노드 안에서 입력(Inputs)과 가중치(Weights)를 곱하고 더하는 선형 계산
활성화 함수 통과를 모두 포함.
※ 인공 신경망(Artificial Neural Network)
: 여러 개의 인공 뉴런들이 모여 연결된 형태
뉴런들이 모인 하나의 단위를 층(Layer)이라고 하고, 여러 층으로 이루어질 수 있음.
5. 신경망의 활용
1) 회귀 (Regression)
- 잡음을 포함한 학습 데이터로부터 어떤 규칙을 찾고 연속된 값의 출력을 추정
2) 분류 (Classification)
- 입력값에 따라 특정 범주로 구분하는 문제
(분류를 하는 곡선을 찾는 것임)
'데이터 및 Programing > Part1. Basic Knowledge' 카테고리의 다른 글
[ML Algorithm] Decision Tree (머신러닝, 의사결정나무, 엔트로피, 가지치기) (0) | 2022.01.29 |
---|---|
머신러닝, 딥러닝 학습 , 최적화(Optimization)에 대해서 (SGD, Momentum, RMSProp, Adam) (0) | 2022.01.15 |
머신러닝(Machine Learning)의 정의 와 분류 (0) | 2022.01.06 |
객체 탐지(Object Detection)의 소개와 종류, 기술의 흐름 (0) | 2021.10.13 |
[Python] Pyleecan : 전기 기계 (모터)의 다중 물리 설계 및 최적화용 파이썬 오픈 소스 ( multiphysic design optimization of electrical machines) (0) | 2021.10.08 |