[모두의 인공지능 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. 실제 데이터엔 노이즈 값이 들어가 있음

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

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

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

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


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 – 숫자 생성 인공지능 만들기

« Python POSTS »