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 기술은 생성 모델 기술에 기반하여 원본 영상의 얼굴을 자연스럽게 다른 사람의 얼굴로 대체할 수 있음
- Computer Vision: 컴퓨터가 인간의 시각 기능을 수행할 수 있도록 하는 방법을 연구하는 분야
✅ 머신러닝의 기본 프로세스- 가설 / 손실함수 / 최적화 정의
: 선형 회귀 모델의 가설, 손실함수, 최적화 정의
- 가설 정의학습하고자 하는 가설(문제)을 선형 함수의 형태로 표현
- 손실함수(= 비용함수) 정의성능 측정- 가설로 정의된 선형 함수의 파라미터 값이 적합한 값인가를 측정
- 대표적인 손실함수: 평균제곱오차(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 의 특성처럼→ 모델의 예측 값이 참 값과 다르면 큰 값을 가짐
- → 모델의 예측 값이 참 값과 비슷하면 작은 값을 가짐
- 대부분의 텐서플로 코드들에서 크로스 엔트로피 손실 함수를 사용
- H(P,Q)=− ∑ P(x)⋅log(Q(x))
- 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 |