열정 실천

[AI] 005. 딥러닝 본문

CS/AI

[AI] 005. 딥러닝

구운오니 2024. 11. 14. 00:03
728x90

Deep Learning 딥러닝 

 

머신러닝 알고리즘 중 심층 인공신경망(Deep Nueral Network)을 활용한 것들의 집합 

*심층 : 2개 이상의 은닉층 (Hidden Layer)

 

딥러닝이 주목 받지 못했던 이유 

 

 성능적인 측면 1. Layer 개수가 적으면 좋은 성능을 내기 어려움

 성능적인 측면 2. Layer 개수가 많을 때, 심층부 Layer까지 잘 학습시키는 알고리즘이 없었음

 

 현실적인 측면 1. Overfitting을 피하기 위해서 많은 수의 학습 데이터가 필요 

 현실적인 측면 2. 학습해야하는 Parameter(각 뉴런의 weight, bias)가 너무 많아, 학습 시간이 너무 김

 

하지만 (1) 알고리즘 자체의 발전, (2) 하드웨어 기술의 발전, (3) 활용 가능한 데이터의 증가로 딥러닝이 재조명 받게 되었다. 

 

 

딥러닝 VS 일반 소프트웨어

  AI 딥러닝 일반 소프트웨어
컨텐츠 Models (모델) Source Code (코드)
개발 과정 Training (학습) Debugging (디버깅)
수정/출시 Retraining (재학습) Patching (버그 수정, 보안 강화, 기능 추가 등)

 

 

딥러닝 여러가지 구조 

1. Feed-Forward

정보가 입력층에서 출력층으로 한 방향으로만 흐르는 구조

뉴런은 이전 층의 출력만을 받아들여 계산하며, 순환 구조가 없다. 주로 다층 퍼셉트론(MLP)에서 사용된다.

2. Feed-Back

피드백 네트워크는 출력의 일부가 다시 입력으로 들어오는 구조

이전 출력이 다음 계산에 영향을 미치도록 하는 방식이다. 이 구조는 정보가 순환하며, 상태를 유지할 수 있다.

3. Bi-Directional 

양방향 순환 신경망(Bi-directional RNN)은 시퀀스 데이터를 처리할 때, 과거와 미래의 정보를 모두 고려한다. 두 개의 RNN이 각각 과거 방향과 미래 방향으로 데이터를 처리하고, 이 결과를 결합한다.

4. Recurrent

순환 신경망(RNN)은 이전 시점의 출력을 현재 시점의 입력으로 사용하는 구조

는 시퀀스 데이터(예: 시간적 패턴)를 처리하는 데 유용하며, 장기 의존성을 학습할 수 있다.

 

 

딥러닝 파이프라인

 

 

데이터 전처리  

 : 데이터 수집, 검증, 전처리, 증폭 들 학습을 위한 데이터 가공 

 

편의 기능 

 : 알고리즘 분산 학습 및 job 관리 

 : 모니터링, 시각화 서비스, UI 

 : 학습을 위한 GPU 등 서버 리소스 할당 및 관리 

 

 

딥러닝 대표 Framework 

 

Tensor Flow Pytorch 
그래프를 한 번 만들어 여러 번 실행 매 Forward Pass마다 새로운 그래프 생성
최적화 및 직렬화 용이 RNN 등 동적 그래프가 필요한 알고리즘에 적합
Framework 성숙도 높음 (다수 모델, 분산병령 학습기능 제공) 개발 생산성 높음 (개발, 디버깅 용이, 직관적이고 깔끔한 API)
실 서비스에 적합 알고리즘 연구에 적합

 

 

 

딥러닝 기술 동향 

 

 - 노이즈에 강한 신뢰성 딥러닝 모델의 중요성 대두

 - 딥러닝이 판단한 근거 및 타당성 등 설명 가능한 인공지능(Explainable AI)의 중요성 대두 

 - 높은 정확도를 위한 인공신경망 규모 증가 

 - 인공신경망 및 알고리즘 복잡성에 따른 자동화 필요 

 - 인공신경망 경량화 필요 (속도 개선, 메모리 절약)

     -> 경량화 방법 : 파라미터 가지치기 및 공유, 차원 축소, 지식 증류

 

 

728x90