머신러닝_딥러닝(ANN, CNN, RNN, Transformers 등)

김정현·2025년 12월 6일

머신러닝

목록 보기
9/9

이번에 배울 것

❗ 딥러닝은 대규모 데이터를 통해 다층 신경망, CNN, RNN, Transformers 등 다양한 구조를 활용하여 복잡한 패턴을 학습하고, 이미지·자연어·생성형 AI 등 폭넓은 영역에서 강력한 성능을 발휘하는 기술입니다!


1. 딥러닝(Deep Learning) 기본 개념

인공신경망(ANN)의 역사와 발전

  • 1940~50년대 초창기 뉴런(neuron)을 단순 모델로 삼아 연구 시작

  • 퍼셉트론(Perceptron)의 단층 구조 → 다층퍼셉트론(MLP) → 딥러닝(Deep Neural Network)

  • 왜 ‘딥(deep)’인가?

    • 입력 계층(Input layer)과 출력 계층(Output layer) 사이에 여러 개의 은닉층(Hidden layer)을 두어 복잡한 패턴까지 학습 가능
  • 데이터와 컴퓨팅 파워, 알고리즘 발전으로 딥러닝이 급성장

딥러닝의 핵심 아이디어

  • 계층적 특징 학습

    • ex) 사람 얼굴 인식을 예로 들면, 초기 은닉층에서는 ‘선’, ‘모서리’, ‘곡선’ 등을 잡아내고, 더 깊은 층에서는 ‘코, 눈, 입’ 등 구체적 특징을 학습하며, 마지막에는 얼굴 전체를 인식
  • 비선형 변환을 반복 적용

    • 많은 은닉층이 비선형 활성화 함수를 통해 데이터를 변환하면서 복잡한 패턴을 학습


  • 오차역전파(Backpropagation)
    • 예측과 실제 값의 차이를 신경망 거꾸로 전달하며 가중치를 업데이트

딥러닝 적용 절차(머신러닝 방법과 동일)

  • 데이터 수집 ➡️ 데이터 전처리(결측값 처리, 정규화 등) ➡️ 모델 설계 ➡️ 모델 학습(훈련) ➡️ 검증(Validation) 및 성능 평가 ➡️ 최종 모델 활용

2. 주요 딥러닝 아키텍처

CNN(Convolutional Neural Network)

1️⃣ 개념

  • 주로 이미지, 영상에 특화된 구조
  • 합성곱(Convolution) 연산을 통해 픽셀 영역의 지역적 특성을 추출

2️⃣ 작동 원리

  • 합성곱 레이어
    • 필터(또는 커널)을 이용해 이미지(특징 맵)을 스캔하며 특징을 추출
  • 풀링(Pooling) 레이어
    • 특징 맵의 크기를 줄이고 주요 특징만 요약
  • 완전연결(FC, Fully Connected) 레이어
    • 추출된 특징 기반으로 분류나 회귀 수행

3️⃣ 활용 예시

  • 자율주행 차량에서 도로 표지판 인식, 차선 탐지, 물체 인식(보행자, 차량 등)
  • 의료 영상 분석(CT, MRI 등)에서 질병 부위 정확 탐지

쉬운 예시

  • 이미지를 볼 때 큰 그림을 보는 것이 아니라 일정 크기의 창으로 이미지를 훑으며(스캔) 특징을 찾는 방식입니다.

RNN(Recurrent Neural Network)

1️⃣ 개념

  • 순차적(시퀀스) 데이터 처리에 특화된 신경망 구조
  • 문장(텍스트), 음성 신호, 주가 등 시간 순서가 있는 데이터를 다룸

2️⃣ 작동 원리

  • 이전 단계(시점)의 은닉 상태(정보)를 다음 단계로 넘겨주며 연쇄적으로 학습
  • 순환 구조로 인해 과거의 정보를 기반으로 현재 출력에 영향을 줌

3️⃣ 문제점과 개선

  • 장기 메모리 문제가 발생(기울기 소실, 폭주 문제) → LSTM(Long Short-Term Memory), GRU(Gated Recurrent Unit)으로 개선

4️⃣ 활용 예시

  • 음성 인식, 기계 번역, 감정 분석, 시계열 예측(주가, 날씨 등)

쉬운 예시

  • 우리 뇌가 문장을 읽을 때 앞 단어(이전 맥락)를 기억하며 현재 단어를 이해하듯, RNN은 이전 정보를 순환하며 학습합니다.

Transformers

https://colab.research.google.com/github/tensorflow/tensor2tensor/blob/master/tensor2tensor/notebooks/hello_t2t.ipynb#scrollTo=OJKU36QAfqOC

1️⃣ 개념

  • 2017년 구글 논문(“Attention Is All You Need”)에서 제시된 모델
  • 어텐션(Attention) 메커니즘을 활용하여, 입력 전체에서 중요한 부분에 집중
  • RNN 없이도 순차 데이터(문장 등) 처리가 가능 → 병렬 연산이 가능해 학습 속도 대폭 향상

2️⃣ 작동 원리

  • 인코더(Encoder)디코더(Decoder) 구조로 분리
  • 어텐션을 통해 단어 간 연관성(의미, 문맥)을 효율적으로 학습

3️⃣ 활용 예시

  • BERT, GPT 시리즈 등 대형 언어 모델
  • 최신 NLP 작업 전반(번역, 요약, 질의응답, 텍스트 생성 등)에 활용

4️⃣ 중요성

  • 현재 많은 대형 모델들이 Transformers 기반
  • 자연어 처리뿐 아니라 영상, 음성 등 멀티모달에도 응용 가능

쉬운 예시

  • 사람에게 한 문단 전체를 빠르게 보여주고, 어떤 단어가 서로 얼마나 관련 있는지 파악해 의미 연결고리를 만드는 과정입니다.

3. 딥러닝의 주요 활용 사례

이미지 처리

  • 예시 1 : 의료 영상 분석

    • CT, MRI 등을 분석해 종양이나 이상 부위를 빠르게 검출 → 진단 보조 역할
    • 인공지능 진단 보조 시스템으로 의료진 부담 완화 및 정확도 향상
  • 예시 2 : 자율주행 객체 탐지

    • 도로 상황에서 차량, 보행자, 신호등 등의 위치와 종류 인식
    • CNN 기반의 물체 인식(Object Detection) 알고리즘(YOLO, Faster R-CNN 등) 활용

자연어 처리(NLP)

  • 예시 1 : 감정 분석

    • SNS나 상품 리뷰 문장에서 “긍정/부정”, “화남/기쁨” 등을 자동 분류
    • 고객 만족도 분석, 마케팅 전략 수립에 활용
  • 예시 2 : 음성 인식

    • 스마트 스피커(Siri, Alexa 등), 콜센터 자동 응답 시스템
    • RNN, Transformer 기반 음성→텍스트 변환
  • 예시 3 : 기계 번역, 요약

    • 구글 번역, 파파고, 딥엘(DeepL) 등 고품질 번역 서비스
    • 긴 텍스트를 핵심만 추려 요약하는 자동 요약 기술

생성형 AI (Generative AI)

  • 텍스트 생성

    • ChatGPT, GPT 시리즈 등은 거대 언어 모델(LLM, Large Language Model)로 자연스러운 문장 생성
    • 블로그 글 작성, 보고서 초안 작성, 스토리텔링에 활용
  • 이미지 생성

    • DALL-E, Midjourney, Stable Diffusion 등 이미지 생성 모델
    • 예술, 디자인 분야에서 컨셉 아트나 시각 자료 생성
  • 음악/영상 생성

    • 새로운 멜로디, 편곡, 스타일의 음악을 생성하거나 영상 편집 보조 등에 활용
    • 유튜브 콘텐츠 제작 보조

4. 강화학습(Reinforcement Learning)

에이전트(Agent)가 환경(Environment)과 상호작용하며, 행동(Action)에 따라 보상(Reward)을 받아 학습

보상을 최대화하는 방향으로 정책(Policy)을 학습해 최적의 행동을 찾음

예시

  • 알파고(AlphaGo): 바둑에서 승리 보상을 최대화하기 위해 강화학습
  • 로봇 제어: 로봇이 넘어지지 않고 걷는 법, 장애물 피하기 등

응용 분야

  • 게임(AI 플레이어), 추천 시스템, 자율주행(주행 정책 학습), 산업 자동화 등

Hugging Face (다양한 딥러닝을 손쉽게 실습)

[코드스니펫] 허깅페이스 페이지

    https://huggingface.co/

https://huggingface.co/

감정분석 코드 예시

[코드스니펫] 감정 분석 코드 예시

    from transformers import pipeline
    
    # 1) 텍스트 분류 파이프라인 생성 (감정 분석용 사전학습 모델)
    classifier = pipeline("sentiment-analysis")
    
    # 2) 예시 문장 분석
    texts = [
        "I love this product! It's absolutely wonderful.",
        "I'm really disappointed. It didn't work as expected."
    ]
    results = classifier(texts)
    
    print(results)
from transformers import pipeline

# 1) 텍스트 분류 파이프라인 생성 (감정 분석용 사전학습 모델)
classifier = pipeline("sentiment-analysis")

# 2) 예시 문장 분석
texts = [
    "I love this product! It's absolutely wonderful.",
    "I'm really disappointed. It didn't work as expected."
]
results = classifier(texts)

print(results)

질의응답 코드 예시

[코드스니펫] 질의 응답 코드 예시

```python
from transformers import pipeline

# 1. "question-answering" 파이프라인을 생성
qa_pipe = pipeline(
    "question-answering", 
    model="distilbert-base-uncased-distilled-squad"
)

# 2. 예시 지문(context)과 질문(question)
context = """
Hugging Face is a company that provides an open-source community and a platform of 
transformer models. Their Transformers library allows easy usage of state-of-the-art 
natural language processing models. They focus on facilitating accessibility and 
collaboration in the AI field.
"""

question = "What does Hugging Face provide?"

# 3. 질의응답 수행
result = qa_pipe(question=question, context=context)

print(result)
# 예시 출력:
# {'score': 0.930..., 'start': 59, 'end': 122, 'answer': 'an open-source community and a platform of transformer models'}

```
from transformers import pipeline

# 1. "question-answering" 파이프라인을 생성
qa_pipe = pipeline(
    "question-answering", 
    model="distilbert-base-uncased-distilled-squad"
)

# 2. 예시 지문(context)과 질문(question)
context = """
Hugging Face is a company that provides an open-source community and a platform of 
transformer models. Their Transformers library allows easy usage of state-of-the-art 
natural language processing models. They focus on facilitating accessibility and 
collaboration in the AI field.
"""

question = "What does Hugging Face provide?"

# 3. 질의응답 수행
result = qa_pipe(question=question, context=context)

print(result)
# 예시 출력:
# {'score': 0.930..., 'start': 59, 'end': 122, 'answer': 'an open-source community and a platform of transformer models'}

문장생성 코드 예시

[코드스니펫] 문장 생성 코드 예시

    from transformers import pipeline
    
    # 1) 텍스트 생성 파이프라인 (GPT-2 등 사전학습 모델 기반)
    generator = pipeline("text-generation", model="gpt2")
    
    # 2) 예시 프롬프트 (문장 시작)
    prompt = "Once upon a time, in a land far away"
    
    # 3) 문장 자동 완성
    result = generator(prompt, max_length=50, num_return_sequences=1)
    print(result)
from transformers import pipeline

# 1) 텍스트 생성 파이프라인 (GPT-2 등 사전학습 모델 기반)
generator = pipeline("text-generation", model="gpt2")

# 2) 예시 프롬프트 (문장 시작)
prompt = "Once upon a time, in a land far away"

# 3) 문장 자동 완성
result = generator(prompt, max_length=50, num_return_sequences=1)
print(result)


총 정리 및 Q&A

총 정리

1️⃣ 딥러닝은 “데이터로부터 계층적 특징을 학습”하는 강력한 방법론이며,

  • CNN: 이미지·영상
  • RNN, LSTM, GRU: 시퀀스 데이터
  • Transformers: NLP를 넘어 다양한 영역으로 확장

2️⃣ 실제 산업계에서 의료, 자율주행, 감정 분석, 음성 인식 등 폭넓게 활용

3️⃣ 생성형 AI의 등장으로 다양한 창의적 작업에도 AI가 도움을 주는 시대가 열림

추가 학습/참고 자료

온라인 강의 플랫폼: Coursera(Andrew Ng의 딥러닝 강의 등), Cs231n, Fast.ai

Q&A

Q1: 딥러닝과 머신러닝은 어떻게 다른가요?

A1: 머신러닝은 사람의 개입으로 특징을 추출해 모델을 학습하는 전통적인 방법들을 포괄적으로 일컫습니다. 딥러닝은 신경망(특히 다층 구조)을 사용해 데이터를 스스로 표현(특징 추출)하며 학습하는 것이 핵심 차이점입니다.

Q2: CNN과 RNN의 가장 큰 차이점은 무엇인가요?

A2: CNN은 주로 이미지나 영상 등 공간적(2D) 데이터를 처리하는 데 특화되어 있습니다. 반면 RNN은 순차적(시계열) 데이터를 효율적으로 다룰 수 있는 구조로, 텍스트나 음성처럼 시간이나 순서가 중요한 데이터에 적용됩니다.

Q3: Transformers 모델이 RNN이나 CNN보다 어떤 면에서 장점이 있나요?

A3: Transformers는 어텐션(Attention) 기법을 사용해 문장의 모든 단어 간 관계를 한 번에 고려할 수 있고, RNN 없이도 병렬 처리가 가능합니다. 이로 인해 학습 속도와 성능이 크게 향상되어 대규모 데이터 학습에 용이합니다.

Q4: 생성형 AI(ChatGPT, DALL-E 등)는 어떻게 사용하면 좋나요?

A4: 생성형 AI는 텍스트·이미지·음악 등 창의적인 작업을 빠르게 도와줄 수 있지만, 아직 사실 관계를 완벽히 보장하지 못하는 경우도 있어 결과물을 비판적으로 검토해야 합니다. 아이디어 발상, 초안 작성, 컨셉 아트 생성 등 빠른 프로토타이핑에 유용합니다.

Q5: 강화학습은 어디에 많이 적용되나요?

A5: 대표적으로 알파고(바둑), 로봇 제어, 게임 AI 등에 활용됩니다. 에이전트가 환경에서 행동을 하고, 보상을 받는 과정을 반복하여 최적의 전략(정책)을 학습하는 방식으로, 자율주행이나 드론 제어 등에서도 연구가 활발히 진행되고 있습니다.

Q6: 딥러닝을 처음 배울 때 참고할 만한 자료나 학습 방법이 있나요?

A6: Coursera(Andrew Ng의 강의), Fast.ai, 그리고 TensorFlow·PyTorch를 활용한 튜토리얼이 가장 많이 활용됩니다. Kaggle 대회에 참여해보며 실전 경험을 쌓는 것도 매우 추천합니다.

profile
안녕하세요!

0개의 댓글