me

[모두의 인공지능 with 파이썬] 둘째마당. 딥러닝 이해하기
2023.11.06 / , ,

딥러닝 이해하기 : https://www.youtube.com/watch?v=WwsHYKrjRi8&list=PLa9dKeCAyr7iXpGqNHKXmeqB6LLo7ieS9&index=6


UNIT 04 딥러닝 원리 이해하기

딥러닝과 인공 신경망

인공 신경망(신경망을 사람들이 인공적으로 만드는 것)에서는 뉴런(신경망 최소 단위)이 다른 뉴런과 연결된 모습을 각각의 층(=레이어 = layer)이란 개념을 사용하여 연결

입력층 : 데이터를 받는 층

출력층 : 이 출력층에 어떠한 값이 전달되었냐에 따라 인공지능 예측 값이 결정

은닉층: 입력층에서 들어온 데이터가 여러 신호로 바뀌어 출력층까지 전달됨. 이때 연결된 여러 뉴런을 지날 때 마다 신호 세기가 변경됨

심층 신경망: 레이어가 여러 층으로 구성된 인공 신경망

딥러닝: 사람의 뇌에서 이루어지는 원리를 이용하여 인공지능을 만드는 방식으로 심층 신경망이 학습하는 과정

인공 신경망의 재료, 여러 특징을 가진 데이터

한정된 정보만으로 정확한 판단 어려움 → 정보가 많을수록 정확 = 다양한 특징(feature)이 포함된 데이터가 필요함

인공 신경망의 작동 모습

인공지능이 지금까지 학습한 데이터와 동일 형태 데이터를 인공지능에 넣어서 학습해야 함

입력 데이터가 여러 레이어를 지나며 특정 신호로 전달되며, 신호가 많이 간 쪽으로 판단 내림

신경망 모델이 신호를 정확한 출력값으로 보내지 않는다면, 정확한 출력값으로 보낼 수 있도록 신호 세기를 조정하는 과정이 바로 인공 신경망의 학습 과정


UNIT 05 인공 신경망의 신호 전달 원리

신호를 전달할 때 사용하는 가중치와 편향

신호 받는 뉴런은 여러 뉴런에서 신호 받음. 신호 세기 변경 전달

신호값 X 가중치(weight) + 편향(bius) 해서 다음으로 전달

가중치: 뉴런과 뉴런 연결선에 있으며 각 선에는 가중치라는 다른 값들이 저장되어 있음

편향: 각 층에 하나의 값으로 존재

인공신경망 학습한다 : 가중치와 편향 값을 데이터에 맞게끔 정교하게 맞추어 간다는 의미

들어오는 신호 세기를 조절하는 활성화 함수

활성화 함수 : 신호 세기 조절. 특히 레이어와 레이어 사이에 있어 여러 뉴런에서 특정한 뉴런으로 들어가는 신호를 종합해 하나의 값으로 바꿔주는 역활을 함

활성화 함수 종류

최근 인공 신경망 학습시 – 릭키 렐루(Leaky ReLU) 함수 개발 사용

소프트맥스 함수는 백분율로 딱 떨어지거나 하지 않아 한 눈에 가장 높은 확율을 확인하기 어려운 경우 사용 – 들어오는 값들을 총 합이 1이 되게 만든 다음 그 값들을 비율에 따라 나눠줌


UNIT 06 인공 신경망의 학습 원리

인공 신경망의 오차 구하기

틀렸을 때 → 재학습시 “오차“를 구해야 제대로 학습이 되는지 확인 가능 : 오차값이 줄어들도록 바꿔나감

이진 분류 문제: 남자 or 여자 – 맞으면 오차 0. 틀리면 오차값이 많이 발생하도록(ex 100)

다중 분류 문제: 나이대 예측 – 답에 가까울수록 오차값 낮게. 멀수록 높게 (ex> 20대일때 – 20대는 오차0. 30~40대는 오차 300. 50대는 오차 50을 줌)

특정값 예측 문제(회귀): 나이 예측 – 정답값과 예측 값 차이를 구한 후 이를 더하면 오차값이 됨 ( ex> 35살 – 45살이라고 하면 = 차이는 10세 – 10에 어떤 수식을 더 한 다음에 더함)

인공 신경망의 핵심! 오차 줄이기

오차를 줄인다는것 : 가중치와 편향의 값을 얼마나 데이터에 적절하게 바꾸냐는 것

경사 하강법: 기울기로 가중치 값을 변경 (기울기 – 미분으로 오차 수정)

오차 역전파법(Back Propagation): 오차를 끝에서부터 거꾸로 가면서 줄임, 마지막부터 처음까지 되돌아가면서 경사 하강법을 사용하여 각각의 가중치 값을 수정

인공 신경망에서의 학습 방법 : 뒤로 가면서 가중치를 수정 후 다시 데이터를 흘려보낸 후 결과 값을 봄 → 그 결과 값이 정답과 어떤 차이가 있는지 확인 후 → 오차 역전파법 사용하여 가중치 수정 = 이 과정을 반복해서 오차를 0으로 줄여감


UNIT 07 텐서플로 플레이그라운드로 딥러닝 체험하기

신경망의 구조 설계하기

텐서플로 플레이그라운드 : https://playground.tensorflow.org/

뉴런 수가 많을 수록 정교한 학습 가능, 층과 뉴런 수가 늘어날 수록 가중치 계산 값이 늘기에 적당한 층과 뉴런수 잘 정해야 함

데이터 입력 형태 선택하기

검증 데이터와 훈련 데이터의 비율(Ratio of training to test data ) : 테스트 데이터 약 20~30%

노이즈 : 0일 땐 이상값이 X. 실제 데이터엔 노이즈 값이 들어가 있음

배치 데이터 : 한번 학습에 몇 개 데이터 사용하느냐 선택

훈련 데이터와 검증 데이터 구분 이유: 신경망 훈련에 모든 데이터를 쓰지 않고 일부만 사용하기 위함. 데이터 전체를 훈련데이터로 사용하면 훈련 데이터에만 최적화. 다른 유형의 실제 데이터에서 잘 예측 못함 = 오버핏팅 문제 생김

복잡한 형태의 데이터 구분하기

딥러닝시 어떤 데이터를 어떻게 넣을 것인가가 중요. 층의 수와 뉴런의 수를 얼마로 결정한 것인지 또한 중요함

  • Learning rate : 경사 하강법과 관련된 용어로 정답값과 예측값의 오차를 최소하 하기 위해 가중치 값 수정할 때 한번 수정할 때 얼마만큼 수정할지 Learning rate 값으로 결정함(값 이동 할 때 기울기를 따라 이동하는데 한번에 얼마만큼 이동할지 결정- 결정하는 값에 따라 장단점. 작게하면 수정되는 값이 적어서 많이 반복 필요. 값이 크다면 한번에 이동 가능하나 팅겨져 나갈 수도 있음.)
  • Activation: 활성화 함수를 의미. ReLU, Tanh, Siqmoid, Linear 함수를 사용할 수 있음. 값을 하나로 정재하려고 활성화 함수 사용.
  • Regularization: 정규화를 의미. 오버피팅(과적함) 줄이기 위해 사용
  • Regularization rate: 정규화 할 때 어느정도 값을 수정할지 정하기 위해 사용하는 값
  • Problem type: 분류(Classification)는 데이터의 주황색과 파란색 데이터로 분류하도록. 회귀(Regression)는 연속된 데이터 값을 예측 하도록 학습 시키는걸 말함

UNIT 08 다양한 딥러닝 기술 살펴보기

합성곱 신경망 살펴보기

이미지 인식 인공지능 – 합성곱 신경망(CNN) 기법 사용 = 시각 세포 작동 원리. 부분(영역) or 전체 보기

합성곱 신경망은 추출한 데이터=그림을 전체와 부분으로 구분해서 데이터 학습 시키는 방식. 과정은 다양.

순환 신경망 살펴보기

순환 신경망 : 재귀(recursive = 원래 자리로 되돌아간다) 신경망으로도 부름

여기선, 하나의 신경망을 계속적 반복해서 학습하는것을 의미

일반적인 인공 신경망(ANN)은 가중치가 한 방향으로 이동하며 변함

순환 신경망은 한 방향이 아니라, 다시 자기자신에게 돌아오는 형태를 가짐

연속 데이터에 대한 결과 예측 하거나 분류할때 사용

일반적 데이터 패턴 학습 + 전후 관계에 대한 패턴 학습

ex> 주식. 변역(ex> 나는 학교에 갑니다 – i school go 가 아닌 선 후 관계 학습 필요)

스케치 RNN으로 순환 신경망 체험

퀵 드로우(https://quickdraw.withgoogle.com/) 데이터셋 사용

사람들이 그린 순서대로 학습하였기에 – 그림 그리는 과정 예측 가능

https://magenta.tensorflow.org/assets/sketch_rnn_demo/index.html

생성 신경망 살펴보기

생성 신경망: 새로운 무언가를 만들어내는 기술 ex> 사진. 음악… 사람들이 어떻게 나이가 들어가는지, 젊었을 때는 어떠한지 그 모습을 생성해 주는 인공지능도 제작 가능

딥 페이크 문제 발생


[모두의 인공지능 with 파이썬] 목차

[모두의 인공지능 with 파이썬] 첫째마당. 인공지능 개념 이해하기

[모두의 인공지능 with 파이썬] 둘째마당. 딥러닝 이해하기

[모두의 인공지능 with 파이썬] 셋째마당 인공지능 개발을 위한 파이썬 첫걸음

[모두의 인공지능 with 파이썬] 넷째마당 딥러닝 프로그래밍 시작하기 1

[모두의 인공지능 with 파이썬] 넷째마당 딥러닝 프로그래밍 시작하기 2 – 숫자 인식 인공지능 만들기

[모두의 인공지능 with 파이썬] 넷째마당 딥러닝 프로그래밍 시작하기 3 – 전염병 예측 인공지능 만들기

[모두의 인공지능 with 파이썬] 넷째마당 딥러닝 프로그래밍 시작하기 4 – 숫자 생성 인공지능 만들기