[딥러닝] 섹션1-1: 머신러닝/딥러닝 기초

2025. 3. 1. 23:18·AI

2023.7.15 작성(https://sujungeee.github.io/posts/ai-DeepLearning-section1-1/)

 

※ 본 포스팅은 인프런 “차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원” 을 참고하여 작성하였습니다.

 

✅ 딥러닝/텐서플로 응용 분야

  • 딥러닝 알고리즘의 주요 응용 분야
    • Computer Vision: 컴퓨터가 인간의 시각 기능을 수행할 수 있도록 하는 방법을 연구하는 분야
      • 컴퓨터 비전의 대표적인 문제들: Image Classification, Semantic Image Segmentation, Object Detection
      • 컴퓨터 비전 문제를 풀기 위해선 딥러닝의 여러 구조 중 CNN 이 많이 사용됨
      • 컴퓨터 비전의 응용 사례: Tesla Autopilot⇒ 또한 자체 제작한 하드웨어를 통해 빠른 딥러닝 연산을 수행
      • ⇒ 테슬라 자동차는 8개의 카메라와 12개의 초음파 센서를 통해 주변 물체를 감지
      • Autopilot: AI 와 컴퓨터 비전 기술을 이용해서 자율 주행을 수행할 수 있음
    • Natural Language Processing(NLP): 컴퓨터가 인간의 언어 처리 기능을 수행할 수 있도록 하는 방법을 연구하는 분야
      • 인간의 언어와 같이 자연어로 표현된 언어를 컴퓨터가 이해할 수 있는 형태로 만드는 방법을 연구하는 학문
      • 자연어 처리의 대표적인 문제들: 문장 분류(Text Classification), 이미지 캡셔닝(Image Captioning), 기계 번역(Machine Translation), 챗봇(Chatbot) 등
      • 자연어 처리를 위해서는 RNN 구조가 많이 사용됨
      • 자연어 처리의 응용 사례⇒ NMT(Neural Machine Translation)딥러닝 기법을 이용해 중국어 문장을 영어 문장으로 번역→ 구글의 최신 NLP 연구 결과를 토대로 인간과 대화를 자연스럽게 수행할 수 있는 인공지능 기술을 개발
      • → 구글에서는 원하는 조건으로 예약을 수행할 수 있도록 도와주는 음성 가상 비서인 Google Duplex 라는 서비스를 공개
      • ⇒ Google Duplex
    • Speech Recognition: 컴퓨터가 인간의 음성 인식 능력을 수행할 수 있도록 하는 방법을 연구하는 분야
      • 음성 인식은 음성 데이터가 표현하는 문장이 무엇인지를 인식하는 문제
      • 소리를 글자로 바꿔준다고 하여 STT(Speech-To-Text) 라고도 불림
      • 음성 인식 서비스: 애플 Siri, 구글 Now, 마이크로소프트 Cortana⇒ 음성 인식은 컴퓨터와 상호작용할 수 있는 차세대 인터페이스
      • → 음성 인식을 사용할 경우 양손을 자유자재로 움직일 수 있는 상태에서 컴퓨터에 명령을 내릴 수 있기 때문
      • ⇒ 음성 인식 기법을 사용해서 가상 비서를 구현
      • 음성 인식의 대표적인 응용 사례→ Google Home, Amazon Alexa⇒ 자율주행차에 내장된 음성 인식 시스템
      • → 사용자의 음성을 인식하고, 사용자의 질문에 대한 적합한 응답을 수행
      • ⇒ 가정용 인공지능 스피커
    • Game: 게임 환경을 이용해서 인공지능 기술 발전을 연구하는 분야
      • 게임 인공지능의 응용 사례⇒ 알파고(AlphaGo): 바둑을 플레이하는 인공지능, 2016
      • ⇒ 딥블루(Deep Blue): 인공지능 바둑/체스 프로그램, 1996
      • ⇒ 최신- OpenAI Five: 강화 학습에 기반한 알고리즘을 통해 복잡한 Dota2 게임의 세계 최고 플레이어들을 상대로 승리를 거둠
      • 게임 인공지능을 구현하기 위한 대표적인 머신러닝 알고리즘: 강화 학습
      • 최근: DQN(강화 학습과 딥러닝을 결합한 방법) 기법이 사용되고 있음, 알파고에도 적용
      • 알파고 제작 회사인 딥마인드 사 → 스타크래프트를 플레이하는 인공지능을 연구 중에 있음
    • Generative Model: 학습 데이터의 분포를 학습해서 학습한 분포로부터 새로운 데이터를 생성하는 방법을 연구하는 분야
      • 2014년 GAN(Generative Adversarial Networks) 구조가 발표된 이후 딥러닝을 이용한 생성 모델 기법이 급속도로 주목받게 됨
      • 학습 데이터의 양을 늘려서 분류기의 성능을 높이는 데이터 증대(Data Augmentation) 기법은 생성 모델을 응용할 수 있는 기법
      • ⇒ 데이터가 부족한 상황에서 추가적인 트레이닝 데이터를 만들 수 있음
      • 생성 모델 구조
      • ⇒ BEGAN: 컴퓨터가 새로운 얼굴 데이터를 생성
      • 생성 모델 응용 사례: Deepfake⇒ 인공지능 기술의 부작용으로 Deepfake 기술에 기반한 가짜 뉴스 생성 등으로 인한 사회적 혼란이 우려되고 있음
      • ⇒ 추가로 요즘 AI 목소리 같은거 유행하는 것도 포함될듯
      • ⇒ Deepfake 기술은 생성 모델 기술에 기반하여 원본 영상의 얼굴을 자연스럽게 다른 사람의 얼굴로 대체할 수 있음

 

✅ 머신러닝의 기본 프로세스- 가설 / 손실함수 / 최적화 정의

: 선형 회귀 모델의 가설, 손실함수, 최적화 정의

  • 가설 정의학습하고자 하는 가설(문제)을 선형 함수의 형태로 표현
  • 손실함수(= 비용함수) 정의성능 측정- 가설로 정의된 선형 함수의 파라미터 값이 적합한 값인가를 측정
    • 대표적인 손실함수: 평균제곱오차(MSE)
  • 최적화 정의손실함수를 최소화하는 방향으로 파라미터값을 조정
    • 대표적인 최적화 기법: 경사하강법(Gradient Descent)다음 스텝의 파라미터 값 = 현재 스텝의 파라미터 값 - ( 러닝레이트 X 손실함수의 미분 값)
    • 러닝레이트 값을 지정하는 방법(실용적) 2. 논문에 있는 러닝레이트 값과 동일한 값을 사용
    • (실용적) 3. 러닝레이트 값으로 인해 파라미터 값이 발산하는 형태를 띄면 → 1/2 로 러닝레이트 값 조정
    • (원론적) 1. 상황에 맞게 설정

 

✅ Batch Gradient Descent, Stochastic Gradient Descent, Mini-Batch Gradient Descent

: 최적화 정의의 3가지 기법

  • Batch Gradient Descent경사하강법으로 파라미터를 한 번 업데이트할 때 전체 트레이닝 데이터를 하나의 Batch 로 적용
    • 장점: 튀는 데이터로 인해 파라미터 값의 최적화에 방해가 되는 경우를 고려할 필요가 없음
    • 단점: 한 스텝 업데이트 하는데에 시간이 오래 걸림
  • Stochastic Gradient Descent경사하강법으로 파라미터를 한 번 업데이트할 때 1개의 트레이닝 데이터를 하나의 Batch 로 적용
    • Batch Gradient Descent 와 반대되는 경우
    • 장점: 파라미터 업데이트의 주기가 짧아짐(자주 업데이트)
    • 단점: 튀는 데이터가 존재한다면 파라미터 값의 최적화가 진행되지 않을 수 있음(이 경우 손실함수 값이 크게 나옴)
  • Mini-Batch Gradient Descent전체 트레이닝 데이터가 n 개 있을 경우 m(n개의 데이터를 일정 갯수로 쪼갬) 개의 트레이닝 데이터를 하나의 Batch 로 적용
    • Batch Gradient Descent 와 Stochastic Gradient Descent 의 절충적인 기법
    • 가장 많이 사용됨
    • 장점: 튀는 데이터로 인해 파라미터 값의 최적화에 방해가 되는 경우를 고려할 필요가 없고, 한 스텝을 업데이트 하는데에 시간이 오래 걸리지 않음
    • ex) 1000 개의 트레이닝 데이터가 있으면
    • → 100 개 씩 나누어 손실함수의 미분 값을 계산 후 다음 스텝의 파라미터 값을 갱신

 

✅ Training Data, Validation Data, Test Data & 오버피팅(Overfitting)

  • 트레이닝 데이터모델의 최적의 파라미터 값을 찾는 트레이닝 과정 중 필요한 데이터
  • 검증용 데이터트레이닝 과정 중간에 사용하는 테스트 데이터
    • 오버피팅모델의 표현력이 강력하여 일반적인 상황에서의 데이터를 수용하지 못하는 현상
      • 기준과 조금이라도 어긋나는 데이터는 옳은 결과라고 판단되지 않음
      • ⇒ 손실함수가 커지므로 정확도가 떨어짐
      • 검증용 데이터의 에러가 커지는 시점 전에 트레이닝을 멈추어야 함
      • 딥러닝의 경우 오버피팅에 빠지기 쉬움
      • ⇒ 오버피팅을 방지하기 위한 기법인 Regularization 기법을 사용함(ex: 드롭아웃)
      • 결정직선이 과도하게 꼬아진 형태를 띔
    • 언더피팅모델의 표현력이 부족하여 트레이닝 데이터도 제대로 예측하지 못하는 현상
      • 데이터가 일정 기준만 충족하여도 옳은 결과라고 판단됨
      • ⇒ 정확도가 떨어짐
      • 결정직선이 거의 직선의 형태를 띔
  • 테스트 데이터최적의 파라미터 값을 갖는 모델로 실제 문제를 풀거나 모델이 잘 학습됐는지 테스트를 하기 위해 필요한 데이터

 

✅ 소프트맥스 회귀(Softmax Regression) & 크로스 엔트로피(Cross-Entropy Loss Function) & One-hot Encoding & MNIST

  • 소프트맥스 회귀n 개의 레이블을 분류하기 위한 가장 기본적인 모델
    • 특징
      • 선형 회귀 함수의 출력 값에 softmax 함수를 적용하면 → 각각의 값들의 합이 1이 됨
      • 모델의 각 출력 값들은 레이블에 대한 확률(= 확신의 정도) 을 나타냄
  • 크로스 엔트로피(Cross-Entropy) 손실 함수분류 문제에서 주로 쓰이는 손실 함수
    • H(P,Q)=− ∑ P(x)⋅log(Q(x))
      • P(x): 참 값을 One-hot Encoding 으로 변환한 값
      • Q(x): 예측 값을 One-hot Encoding 으로 변환한 값
    • 특징
      • 분류 문제에서 MSE 보다 더 학습이 잘 됨
      • MSE 의 특성처럼→ 모델의 예측 값이 참 값과 다르면 큰 값을 가짐
      • → 모델의 예측 값이 참 값과 비슷하면 작은 값을 가짐
      • 대부분의 텐서플로 코드들에서 크로스 엔트로피 손실 함수를 사용
  • MNIST 데이터셋
  • One-hot Encoding각각의 범주형 데이터에서 벡터의 한 인덱스만 1 값을 갖도록 구분한 것
    • 특징
      • 1 을 제외한 나머지 벡터 성분의 값은 모두 0 의 값을 갖도록 하여 Binary Value 로 표현함
      • 머신 러닝 알고리즘을 구현할 때 타겟 데이터를 One-hot Encoding 형태로 표현하는 것이 일반적
      • → 위 크로스 엔트로피 손실 함수에서의 참 값과 예측 값도 One-hot Encoding 으로 변환함(세부 사항은 크로스 엔트로피 손실 함수 참조)
    • Integer Encodingn 개의 범주형 데이터가 있을 때 레이블을 각각 1~n 으로 변환하여 표현하는 것
    • ⇒ 문제점: 머신러닝 알고리즘이 정수 값으로부터 잘못된 경향성을 학습하게 될 수도 있음

'AI' 카테고리의 다른 글

[딥러닝] 섹션3-2: Pre-Trained CNN(2)  (0) 2025.03.02
[딥러닝] 섹션3-1: Pre-Trained CNN(1)  (0) 2025.03.02
[딥러닝] 섹션2-2: CNN 표준 모델  (0) 2025.03.02
[딥러닝] 섹션2-1: CNN 개념  (0) 2025.03.01
[딥러닝] 섹션1-2: 텐서플로/컴퓨터비전 기초  (0) 2025.03.01
'AI' 카테고리의 다른 글
  • [딥러닝] 섹션3-1: Pre-Trained CNN(1)
  • [딥러닝] 섹션2-2: CNN 표준 모델
  • [딥러닝] 섹션2-1: CNN 개념
  • [딥러닝] 섹션1-2: 텐서플로/컴퓨터비전 기초
jjangsudiary
jjangsudiary
jjangsudiary 님의 블로그 입니다.
  • jjangsudiary
    jjangsudiary 님의 블로그
    jjangsudiary
  • 전체
    오늘
    어제
    • 분류 전체보기 (81) N
      • 이모저모 (0)
        • 회고 (0)
      • Development (17) N
        • 개발 공부 (14) N
        • 프로젝트 (2)
      • Android (10)
        • Compose (1)
      • AI (15)
      • Computer Science (25)
        • 네트워크 (8)
        • 데이터베이스 (10)
        • 운영체제 (6)
        • 자료구조 (0)
        • 컴퓨터구조 (1)
      • Java (9)
        • 디자인패턴 (2)
      • Spring (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    백준
    인공지능
    코딩 테스트
    Python
    파이썬
    TensorFlow
    운영체제
    java
    Ai
    자바
    CS
    프로그래머스
    database
    머신러닝
    안드로이드
    딥러닝
    os
    baekjoon
    android
    db
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
jjangsudiary
[딥러닝] 섹션1-1: 머신러닝/딥러닝 기초
상단으로

티스토리툴바