딥러닝개념
- 인공 신경망을 기반으로한 기계 학습의 한분야
- 다층 신경망을 사용하여 데이터로부터 특징을 자동으로 학습하고 이를 통해 복잡한 문제를 해결한다.
- 입력 데이터에서 중요한 패턴을 추출하고 , 이를 바탕으로 예측 , 분류 , 생성 등의 다양한 작업을 수행한다.

딥러닝의 특징
- 비선형 추론 : 딥러닝은 비선형 추론을 통해 복잡한 데이터의 패턴을 학습할수 있다.
- 다층 구조 : 여러 층의 신경망을 사용하여 데이터의 고차원 특징을 학습한다.
- 자동 특징 추출 : 데이터로부터 중요한 특징을 자동으로 추출하여 별도의 특징 공학 과정이 필요없다.
인공지능 , 머신러닝 , 딥러닝의 관계
- 인공지능 : 인간의 지능을 모방하여 문제를 해결하는 기술 .
규칙 기반 시스템부터 자율 학습 시스템까지 다양한 접근 방식을 포함함. - 머신러닝 : 데이터를 이용해 모델을 학습하고 , 이를 통해 예측이나 결정을 내리는 기술 .
머신러닝은 AI의 하위 분야로 , 지도, 비지도 , 강화 학습등의 방법을 포함. - 딥러닝 : 머신러닝의 하위 분야로 , 다층 신경망을 사용하여 데이터를 학습
특히 대규모 데이터와 복잡한 무제를 다루는데 강력한 성능을 발휘

신경망의 기본 원리
1 . 퍼셉트론과 다층 퍼센트론 (XOR 문제 포함 )
단일 퍼셉트론의 원리
- 퍼셉트론은 인공 신경망의 가장 기본적인 단위로 , 하나의 뉴런을 모델링한것이다.
- 입력값을 받아 가중치를 곱하고, 이를 모두 더한후 활성화 함수를 통해 출력값을 결정한다.

다층 퍼센트론 (MLP)
다층 퍼센트론의 개념
- 다층 퍼셉트론은 여러 층의 퍼센트론을 쌓아 올린 신경망 구조이다.
- MLP는 입력층 , 은닉층 , 출력층 으로 구성되며, 각층의 뉴런들이 서로 연결되어 있다.

입력, 은닉 , 출력 레이어의 개념
- 입력레이어 - 외부 데이터가 신경망에 입력되는 부분 . 뉴런 수는 입력데이터의 특징수가 동일하다.
- 은닉레이어 - 입력 레이어와 출력 레이어 사이에 위치한 층으로 , 입력 데이터를 처리하고 특징을 추출하는
역할을 한다. 은닉 레이어의 뉴런 수와 층 수는 모델의 복잡성과 성능에 영향을 미친다. - 출력 레이어 - 신경망의 마지막 층으로 , 최종 예측 값을 출력한다. 뉴런수는 예측하려는 클래스 수 또는
회귀 문제의 출력 차원과 동일하다.
XOR 문제와 MLP
- 단일 퍼센트론은 선형 분류이기 때문에 XOP 문제와 같은 비선형 문제를 해결할수 없다.
- XOR 문제는 두 입력값이 다를때만 1을 출력하는 문제로 , 단일 퍼셉트론으로는 해결 할수 없다.
- MLP는 은닉층을 통해 비선형성을 학습할수 있어 XOR 문제를 해결할수 있다.
최적화 알고리즘의 개념
- 최적화 알고리즘은 손실 함수를 최소화 하기 위해 모델의 가중치를 조정하는 방법.
- 최적화 알고리즘은 손실 함수의 기울기를 계산하고 , 이를 바탕으로 가중치를 업데이트한다.
주요 최적화 알고리즘의 종류
- SGD
개념 : 전체 데이터셋이 아닌 무작위로 선택된 일부 데이터를 사용하여 기울기를 계산하고 가중치를 업데이트
장점 : 계산이 빠르고 큰 데이터셋에서도 효율적으로 동작함
단점 : 최적점에 도달하기까지 진동이 발생할수 있다. - Adam
개념 : 모멘텀과 RMSPorp을 결합한 알고리즘으로, 학습률을 적응적으로 조정한다.
장점 : 빠른 수렴 속도와 안정적인 학습을 제공
단점 : 하이퍼파라미터 설정이 복잡함
역전파 알고리즘의 개념과 수학적 원리
역전파는 신경망의 가중치를 학습시키기 위해 사용되는 알고리즘이며,
출력에서 입력 방향으로 손실 함수의 기울기를 계산하고, 이를 바탕으로 가중치를 업데이트한다.
역전파의 수학적 원리
- 연쇄 법칙을 사용해 손실함수의 기울기를 계산한다.
- 각 층의 기울기는 이전층의 기울기와 현재 층의 기울기를 곱하여 계산한다.
- 이를 통해 신경망의 모든 가중치가 업데이트된다.

pytorch
pytorch는 페이스북에서 개발한 오픈 소스 딥러닝 라이브러리로, 동적 계산 그래프를 지원하여 유연하고
직관적인 모델 설계가 가능하다.
conda를 통해 쉽게 설치 할수있다,
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
'나의개발일지(TIL)' 카테고리의 다른 글
| TIL 13일차 - 딥러닝 (5) | 2024.10.22 |
|---|---|
| TIL 11일차 -머신러닝 (0) | 2024.10.18 |
| 나의개발일지(TIL)[스파르타 내일배움캠프]10일차 -머신러닝 (0) | 2024.10.17 |
| [스파르타 내일배움캠프]9일차 -머신러닝 (0) | 2024.10.15 |
| [스파르타 내일배움캠프]8일차 -머신러닝 (0) | 2024.10.14 |