딥러닝의 정의
출처: 내 삶속 AI: 알게모르게 스며든 AI 기술, 제대로 알고쓰자!
딥러닝은 인공 지능(AI) 연구 분야의 하나로, 인간의 뇌가 정보를 처리하고 학습하는 방식을 모방한 인공 신경망을 기반으로 하는 기계 학습의 한 형태이다. 이 기술은 데이터에서 복잡한 패턴을 인식하고 학습할 수 있는 다층적인(깊은) 신경망 구조를 사용한다.
딥러닝의 핵심은 대량의 데이터로부터 고차원적인 추상화를 자동으로 학습할 수 있는 능력에 있다. 이러한 과정은 여러 층을 거치면서 데이터의 특징을 점차적으로 추출하고, 더 복잡한 특징을 학습하는 계층적 접근 방식을 따른다. 각 층(layer)은 입력 데이터로부터 점점 더 고수준의 특징을 추출하며, 이는 단순한 패턴 인식에서부터 복잡한 의사 결정까지 다양한 문제를 해결하는 데 사용된다.
딥러닝은 크게 두 가지 핵심 기술에 의존한다:
첫째, 역전파(Backpropagation) 알고리즘을 통한 효율적인 학습 방법으로, 신경망이 주어진 작업에 대해 최적화된 가중치를 찾을 수 있게 한다.
둘째, 대규모 데이터 세트와 강력한 컴퓨팅 리소스(예: GPU)를 활용하여 복잡한 모델을 훈련시키는 능력이다.
딥러닝은 이미지 및 음성 인식, 자연어 처리(NLP), 게임 플레이, 로봇 제어 등 다양한 응용 분야에서 혁신적인 성과를 이루어냈으며, 기술의 발전과 함께 그 적용 범위는 계속 확대되고 있다.
인공지능 - 머신러닝 - 딥러닝의 관계
참고: LEE&JANG ECO ENG, 네이버 블로그 / 내 삶속 AI: 알게모르게 스며든 AI 기술, 제대로 알고쓰자!
인공지능(artificial intelligence, AI)은 인간의 지능을 갖고 있는 기능을 갖춘 컴퓨터 시스템이며, 인간의 지능을 기계 등에 인공적으로 시연(구현)한 것. 인간의 지능을 모방하여 기계가 인간과 같은 지능적인 행동을 할 수 있도록 하는 기술이며, 학습, 추론, 문제 해결, 인지 등 인간의 지능적 기능을 수행할 수 있는 컴퓨터 프로그램 또는 시스템을 지칭한다. AI는 더 넓은 범위를 가지며, 머신러닝과 딥러닝은 이 큰 범주 안에 포함되는 하위 집합.
머신러닝(Machine Learning, ML)은 클라우드 컴퓨터가 학습 모형을 기반으로 외부에서 주어진 데이터를 통해 스스로 학습하는 것을 말한다. 빅데이터를 분석하고 가공해서 새로운 정보를 얻어 내거나 미래를 예측하는 기술을 말하며, 축적된 데이터를 토대로 상관관계와 특성을 찾아내고 결론을 도출한다.
머신러닝은 AI의 한 분야로서, 명시적인 프로그래밍 없이 데이터로부터 학습할 수 있는 알고리즘을 개발하는 기술. 이는 기계가 데이터를 분석하고, 그 데이터로부터 패턴을 인식하며, 이를 바탕으로 예측이나 결정을 할 수 있도록 합니다. 머신러닝은 다시 지도학습, 비지도학습, 강화학습 등으로 세분화될 수 있다.
‘딥러닝’(deep learning)은 컴퓨터가 여러 데이터를 이용해 마치 사람처럼 스스로 학습할 수 있게 인공신경망을 기반으로 구축한 기계 학습 기술이며, 축적된 데이터를 분석만 하지 않고 데이터를 학습까지 하는 기계 학습 능력을 활용하여 결론을 도출한다.
머신러닝의 한 분류로서, 인공신경망(특히 깊은 신경망)을 이용하여 학습하는 방법. 이 방법은 데이터의 추상적인 특성을 자동으로 파악하여, 사람이 직접 특성을 지정해주지 않아도 복잡하고 고차원적인 데이터를 처리할 수 있는 능력을 가진다. 딥러닝은 이미지 인식, 음성 인식, 자연어 처리 등 다양한 분야에서 효과적으로 사용되고 있다.
딥러닝 기본 개념 파악 문제
1. 딥러닝에서 학습(training) 과정이란?
① 데이터를 저장하는 과정
② 모델이 주어진 데이터를 통해 가중치를 업데이트하는 과정
③ 모델이 데이터를 분류하는 과정
④ 모델의 출력을 분석하는 과정
▶ 훈련 데이터 샘플과 그에 상응하는 레이블이 주어졌을 때, 실제값과 예측값의 차이를 알려주는 손실 함수(loss function)의 값을 최소화시키는 최적의 매개변수 편향(bias)과 가중치(weight)를 찾는 것이다.
딥 러닝의 훈련 프로세스는 모델이 주어진 데이터를 통해 가중치를 업데이트하는 프로세스이다. 훈련 중에 모델은 예측 출력과 실제 출력 간의 오류를 기반으로 내부 매개변수(가중치)를 조정하여 학습한다. 이 반복 프로세스는 예측 시 모델의 정확도를 향상시킨다.
2. 평가(evaluation) 과정에서 사용하는 지표가 아닌 것은?
① 정확도(Accuracy)
② 손실(Loss)
③ 학습률(Learning Rate)
④ 정밀도(Precision)
▶ 딥러닝 모델 평가 지표에는
- Accuracy 정확도
- Precision 정밀도
- Recall 재현율
- F1-Score
- ROC 곡선
- AUC
등이 있다. 학습률은 평가 과정에서 사용되는 지표가 아니며, 훈련 중 가중치 업데이트 크기를 제어하지만 모델 성능을 평가하지는 않는다.
3. 추론(inference) 과정에서 모델이 수행하는 일은?
① 새로운 데이터를 학습한다.
② 학습된 가중치를 사용하여 새로운 데이터를 예측한다.
③ 데이터의 이상치를 제거한다.
④ 데이터를 무작위로 생성한다.
▶ 추론(Inference)은 학습을 통해 만들어진 모델을 실제로 새로운 입력 데이터에 적용하여 결과를 내놓는 단계이다.
모델을 만들어 가기 위한 학습과는 달리 추론의 목적은 현재 데이터에 대해서 해당 모델이 원하는 작업을 수행해 주는 것이다.
추론 과정에서 머신러닝 모델은 학습 중에 학습한 패턴과 관계를 사용하여 보이지 않는 새로운 데이터에 대해 예측한다.
머신 러닝 추론은 모델을 라이브 데이터에 적용하여 실행 가능한 출력을 생성하는 것을 포함한다. 이 단계에서 추론 시스템은 최종 사용자로부터 입력을 받고, 데이터를 처리하고, ML 모델에 공급하고, 출력을 사용자에게 다시 제공한다.
4. 딥러닝에서 손실 함수(Loss Function)가 하는 역할은?
① 모델의 예측 성능을 개선한다.
② 모델의 오류를 측정하여 학습 방향을 제시한다.
③ 데이터를 정규화한다.
④ 학습 데이터를 무작위로 섞는다.
▶ 손실 함수는
- 실제값과 예측값의 차이를 비교하는 지표.
- 값이 낮을수록 학습이 잘 된 것이라고 볼 수 있고, 정답과 알고리즘 출력을 비교할 때 사용.
- 최적의 매개변수 (가중치와 편향)를 탐색할 때 이것의 값을 가능한 한 작게 하는 매개변수 값을 찾음.
- 이 프로세스를 통해 모델은 최적화를 통해 시간이 지남에 따라 개선될 수 있음.
5. 경사 하강법에서 사용되는 ‘학습률(learning rate)’의 역할은?
① 데이터를 정렬하는 속도를 조절한다.
② 신경망 학습 시 가중치 업데이트의 크기를 결정한다.
③ 모델의 출력 정확도를 측정한다.
④ 과적합을 방지하기 위한 기법이다.
▶ 경사 하강법에서 중요한 파리머터는 스텝의 크기로, 학습률 초매개변수(하이퍼 파라미터)로 결정된다.
경사하강법의 학습률은 신경망을 훈련할 때 가중치 업데이트 크기를 결정한다. 각 반복에서 계산된 오류에 대한 응답으로 모델의 매개변수(가중치)가 조정되는 정도를 제어한다.
- 학습률이 작으면 업데이트가 작아져 보다 정확한 조정이 가능하나, 너무 작으면 알고리즘이 수렴하기 위해 반복을 많이 진행해야 하므로 시간이 오래 걸리고,
- 반대로 학습률이 크면 업데이트가 더 커져 잠재적으로 학습 속도가 빨라지나, 너무 크면 알고리즘을 더 큰 값으로 발산하게 만들어 적절한 해법을 찾지 못하게 된다.(최적값 초과)
[경사 하강법]
'점진적으로' 반복적인 계산을 통해 가중치 파라미터 값을 업데이트 하면서 오류 값이 최소가 되는 파라미터를 구하는 방식
6. 데이터를 학습, 검증, 테스트 데이터셋으로 나누는 이유는?
① 데이터를 효율적으로 분류하기 위해
② 학습과 평가에 사용할 데이터를 구분하여 모델의 성능을 정확히 측정하기 위해
③ 데이터를 무작위로 섞기 위해
④ 모델의 학습 시간을 줄이기 위해
▶ 머신러닝을 통해서 예측이나 분류를 할 수 있다. 그러나 이 예측이나 분류가 얼마나 정확한지 즉, 머신러닝 모델의 효과성을 검증하기 위해 데이터를 나눌 때 학습(Training), 검증(Validation), 테스트(Test) 데이터 세트로 나눈다.
- 학습 세트: 알고리즘이 학습할 데이터
- 검증 세트: 학습 데이터를 이용해 모델을 학습시킨 후, 검증 세트를 통해 모델의 예측/분류 정확도 계산
- 테스트(평가) 세트: 실제 데이터. 검증 세트와 비슷하나, 모델을 구축하거나 튜닝 시에 포함된 적 없는 데이터로 구성.
7. CNN에서 사용하는 ‘필터’의 역할은?
① 데이터의 노이즈를 제거한다.
② 입력 데이터에서 특징을 추출한다.
③ 데이터를 압축하여 저장한다.
④ 데이터를 무작위로 섞는다.
▶ 필터는 커넬(kernel)로 불리기도 하는데, 이는 이미지의 특징을 찾아내는 것이 목적이며, CNN에서 학습의 대상이 된다.
필터의 기능은 이미지(입력 데이터)로부터 내가 원하는 정보 (특징)만 추출하는 것이다.
8. 순환 신경망(RNN)이 가장 적합한 문제 유형은?
① 이미지 분류
② 시계열 데이터 처리
③ 데이터 군집화
④ 회귀 분석
▶ RNN 알고리즘은 시계열 데이터 처리에 가장 적합하다. 이는 RNN이 입력 순서가 중요한 순차 데이터를 처리하도록 설계되었기 때문이다. 이는 과거 정보가 현재 출력에 영향을 미치는 언어 모델링, 음성 인식 및 시계열 예측과 같은 작업에 일반적으로 사용된다.
RNN은 일반적으로 이미지 분류(컨벌루션 신경망(CNN)이 이에 더 적합함), 데이터 클러스터링 또는 전통적인 회귀 분석에 사용되지 않는다.
[RNN 알고리즘]
- 입력층, 은닉층, 출력층으로 구성되며 은닉층에서 재귀적인 신경망을 갖는 알고리즘
- 음성신호, 연속적 시계열 데이터 분석에 적합
- 장기 의존성 문제와 기울기 소실문제가 발생하여 학습이 이루어지지 않을수도 있음
- LTSM은 RNN의 장기 의존성 문제를 보완하기 위해 설계한 신경망 알고리즘이며, 입력/망각/출력 게이트로 구성.
기울기 소실(GV, Gradient Vanishing) | 오차역전파 과정에서 입력층으로 갈수록 가중치에 따른 결과 값의 기울기가 작아져 0에 수렴하는 문제 |
기울기 폭발(GE, Gradient Exploding) | 기울기가 점차 커지면서 가중치들이 비정상적으로 크게 업데이트되는 문제 |
기울기 클리핑 | 기울기 폭발을 막기 위해 일정 임곗값을 넘어서지 못하게 기울기 값을 자르는 방법 |
★ 장기 의존성 문제: 은닉층의 과거의 정보가 마지막까지 전달되지 못하는 현상.
입력과 출력 사이의 거리가 멀어질수록(step 이 길어질수록) 연관 관계가 적어지는(앞선 입력 데이터의 정보가 희미해지는) 문제.
'[파이썬 Projects] > <파이썬 딥러닝, 신경망>' 카테고리의 다른 글
[딥러닝] 인공 신경망: 퍼셉트론, 다층 퍼셉트론 (1) | 2024.11.19 |
---|---|
[딥러닝] 인공 신경망(ANN) (2) | 2024.11.19 |
[Teachable Machine] 코딩없이 머신러닝 모델 만들기 - 2 (1) | 2024.09.24 |
[Teachable Machine] 코딩없이 머신러닝 모델 만들기 - 1 (7) | 2024.09.23 |
[머신러닝 프레임워크] Keras vs Tensorflow vs Pytorch (0) | 2024.09.09 |