일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 손실 함수
- 딥러닝
- 3d
- 베버의 법칙
- union-find
- 동적계획법
- deep learning
- 백준
- 이진 분류
- 과대적합
- 기울기 소실
- 단층 퍼셉트론
- 베르누이 분포
- bfs
- DP
- dl
- 계단 함수
- 이진분류
- dijkstra
- feedforward neural network
- Perceptron
- OpenGL
- 다익스트라
- BOJ
- 범용 근사 정리
- 알고리즘
- 경사하강법
- vanishing gradient
- c++
- 순방향 신경망
- Today
- Total
Hello COCOBALL!
[DL] 머신러닝(Machine Learning), 딥러닝(Deep Learning) 본문
머신러닝(Machine Learning)
컴퓨터가 명시적인 프로그래밍 없이 데이터를 분석하고 패턴을 학습하여 새로운 데이터를 예측하거나 분류, 의사결정을 내릴 수 있도록 하는 기술이다.
머신러닝 주요 개념
1. 지도학습(Supervised Learning)
입력 데이터와 그에 상응하는 출력 데이터(정답, label)이 주어지는 학습 방식이다. 모델은 이 데이터를 기반으로 입력과 출력 간의 관계를 학습하고, 이러한 방법을 통해 새로운 데이터가 주어진 경우 상응하는 출력 데이터를 예측하는 것이 가능하다.
지도학습 알고리즘 : 선형 회귀, 로지스틱 회귀, 서포트 벡터 머신(SVM), 결정 트리, 랜덤 포레스트, 신경망 등
예시 : 이미지 분류, 스팸 메일 필터링, 질병 예측 등
2. 비지도학습(Unsupervised Learning)
출력 데이터(정답)이 없는 상황에서 입력 데이터의 분포나 패턴을 파악하는 방법이다. 모델은 데이터의 구조나 패턴을 발견하는 데 중점을 둔다.
비지도학습 알고리즘 : K-평균(K-means), 계층적 군집화, 밀도 기반 군집화(DBSCAN), 차원 축소(Dimensionality Reduction) 기법인 PCA(Principal Component Analysis), t-SNE 등
예시 : 고객 세분화, 데이터 시각화, 이상 탐지 등
3. 강화학습(Reinforcement Learning)
에이전트(Agent)가 환경과 상호작용하며 보상(reward)을 최대화하는 방향으로 행동을 학습하는 방식이다. 에이전트는 시도와 오류를 통해 최적의 행동 정책(policy)을 학습한다.
강화학습 알고리즘 : Q-러닝, 심층 Q-네트워크(DQN), 정책 경사법(Policy Gradient) 등
예시 : 게임 플레이, 자율 주행, 로봇 제어(로봇이 어떤 작업을 수행할 때 보상을 받고, 그 보상을 최대화하기 위한 행동을 학습) 등
딥러닝(Deep Learning)
머신러닝의 하위 분야로, 인공 신경망(Artifical Neural Networks)을 기반으로 복잡한 데이터를 학습하고 예측하는 기술이다. 기존 머신러닝 기법들이 특정 문제에 특화했다면, 딥러닝 모델은 데이터의 복잡한 관계를 잘 표현하므로, 다양한 문제에 적용할 수 있다. 대량의 데이터와 고성능 컴퓨팅 자원을 활용하여 복잡한 패턴을 학습할 수 있는 능력을 가지고 있어 이미지 인식, 음성 인식, 자연어 처리 등 다양한 분야에서 탁월한 성능을 보이고 있다.
머신러닝과 딥러닝의 차이점
머신러닝과 딥러닝은 비슷한 개념으로 사용되지만, 차이점이 존재한다.
머신러닝 : 입력 데이터와 출력 데이터 사이의 관계를 학습하는 것에 초점을 둔다. 데이터를 분석하고 모델을 만들어 결과를 예측하는 것이 목적이고, 수학적인 모델을 사용하여 데이터를 분석하며 데이터셋의 특징을 파악한 뒤 모델을 만들어 새로운 데이터를 예측한다.
딥러닝 : 머신러닝의 한 종류로, 인공 신경망을 사용하여 입력 데이터를 처리하고 결과를 예측한다. 딥러닝은 머신러닝보다 더 복잡한 데이터를 처리할 수 있으며, 이미지, 음성, 언어 등과 같은 다양한 데이터에서 좋은 성능을 보인다.
딥러닝의 장점과 단점
장점
1. 고성능
이미지 인식, 음성 인식, 자연어 처리 등 여러 분야에서 뛰어난 성능을 보인다. 특히, 인간의 인지 능력을 필요로 하는 복잡한 작업에서 탁월한 성능을 제공한다. 또한, 대규모 데이터 세트에 대해 학습할 때 다른 알고리즘보다 높은 정확도와 성능을 달성하는 것이 가능하다.
2. 자동 특징 추출
데이터에서 자동으로 복잡한 특성을 추출하는 것이 가능하며, 이는 전통적인 머신러닝에서 수동으로 특징을 추출하고 선택해야 하는 과정을 대체하여 특성 공학의 필요성이 줄어든다.
(특성공학, Feature Engineering : 머신러닝 모델의 성능을 향상시키기 위해 데이터의 특성을 만들거나 변형하는 과정)
3. 대규모 데이터 처리
딥러닝은 대규모 데이터셋에서 효과적으로 학습할 수 있다. 많은 양의 데이터를 사용할수록 모델의 성능이 향상되며, 이는 빅데이터 시대에 딥러닝이 특히 유용한 이유 중 하나이다.
(대규모 데이터셋)
- 딥러닝은 깊은 구조와 다양한 레이어를 가진 신경망으로 구성되어 있기 때문에 복잡한 고수준 특징을 추출하고 이해하는 데 유리하다.
- 다양한 패턴과 예제를 포함하고 있어 모델이 더 풍부하고 다양한 정보를 학습할 수 있으며, 이는 모델이 더 정확하고 정밀한 예측을 할 수 있게 하며 성능을 향상시킨다.
- 모델이 학습 데이터에 과적합되는 위험이 줄어들고, 새로운 데이터에 대해 더 잘 일반화할 수 있어 모델이 다양한 상황과 변동성에 대해 강건하게 대응할 수 있게 한다.
- 복잡한 모델(예: 심층 신경망)을 효과적으로 학습할 수 있게 한다. 소규모 데이터셋에서는 복잡한 모델이 과적합되기 쉽지만, 대규모 데이터셋은 복잡한 모델이 충분히 학습할 수 있는 충분한 정보를 제공한다.
단점
1. 대규모 데이터 요구
딥러닝 모델은 일반적으로 대규모 데이터셋이 필요하다. 이는 모델이 복잡한 패턴을 학습하고 일반화하기 위해 충분한 예제를 필요로 하기 때문에, 데이터 수집과 준비에 많은 비용과 시간이 소요될 수 있다.
2. 고성능 하드웨어 필요성
GPU와 같은 고성능 하드웨어가 필요하다.
3. 과적합의 위험
딥러닝 모델은 매우 복잡하고 많은 매개변수를 가지기 때문에 작은 데이터셋에서는 과적합 문제가 발생할 수 있다. 이는 모델이 학습 데이터에 너무 맞춰져 새로운 데이터에 대해 일반화하기 어렵게 만들 수 있다는 문제가 있다.
4. 해석의 어려움
딥러닝 모델은 보통 블랙박스 형태로 동작하기 때문에 내부의 작동 원리를 이해하기가 어려울 수 있으며, 어떤 입력이 결과를 어떻게 결정하는지 명확하게 설명하기 어려운 경우가 많다.
5. 계산적인 비용
학습과정에서는 많은 계산적인 비용이 발생할 수 있다. 특히, 큰 데이터셋과 복잡한 모델을 다룰 때는 학습 시간과 리소스가 많이 소모될 수 있다.
대안 :
Transfer learning : 대용량 데이터로 사전에 학습된 모델을 이용해서 빠르게 학습
Meta learning : 여러 작업의 학습 방식을 학습한 후에 유사한 작업을 적은 데이터로 빠르게 학습
Lifelong learning : 한번 학습한 내용을 잊지않고 계속해서 누적 학습
Active learning : 성능에 큰 영향을 미치는 데이터를 선별해 학습
딥러닝 주요 개념
1. 인공 신경망(Artificial Neural Networks, ANN)
인간의 뇌 구조에서 영감을 받아 만들어진 모델로, 다수의 뉴런으로 구성된 계층적 구조를 가진다. 뉴런은 입력 값을 받아 가중치(weight)와 편향(bias)을 적용하고, 활성화 함수(activation function)를 통해 출력을 생성한다.
(자극, 신호 : 입력 데이터, 임계값 : 가중치, 자극에 의한 특정 행동 : 출력 데이터)
신경망은 다수의 입력 데이터를 수신하는 입력층(input), 데이터를 출력하는 출력층(output), 입력층과 출력층 사이에 존재하는 레이어(은닉층)들이 존재한다. 히든 레이어와 노드의 개수를 구성하는 것을 모델을 구성한다고 하는데, 이 모델을 잘 구성하여 원하는 출력값을 잘 예측하는 것이 목표이다. 은닉층에서는 활성화 함수를 사용하여 최적의 weight와 bias를 찾아내는 역할을 한다.
문제점
- 학습과정에서 파라미터의 최적값을 찾는 것이 어려움
ANN의 성능은 하이퍼 파라미터(학습률, 레이어 개수, 노드 개수 등)에 크게 의존적이다. 최적의 하이퍼 파라미터를 찾기 위해 많은 실험과 튜닝이 필요하며, 이는 시간과 자원이 많이 소모되는 작업이다.
- Overfitting(과적합)
모델이 학습 데이터에 너무 적합하게 맞춰지면 새로운 데이터에 대한 일반화 성능이 떨어진다. 과적합 방지를 위해 정규화 및 드롭아웃(dropout) 등의 기법이 필요하다(사전 훈련을 통해 과적합을 방지할 수 있음).
- 학습 시간이 느림
은닉층이 많으면 많을수록 학습의 정확도가 올라가지만 그만큼 연산량이 기하 급수적으로 늘어나게 되어 학습에 많은 시간을 필요로 한다(그래픽카드의 발전으로 많은 연산량을 감당할 수 있을 정도로 하드웨어의 성능이 좋아짐).
2. 컨볼루션 신경망(Convolutional Neural Networks)
3. 순환 신경망(Recurrent Neural Networks)
'Deep Learning' 카테고리의 다른 글
[DL] 손실 함수(Loss Function) (0) | 2024.06.23 |
---|---|
[DL] 기울기 소실(Vanishing Gradient) (0) | 2024.06.23 |
[DL] 활성화 함수(Activation Function) (0) | 2024.06.23 |
[DL] 퍼셉트론(perceptron) (0) | 2024.06.22 |
[DL] Overfitting, Underfitting (0) | 2024.06.21 |