딥러닝 이해하기 : https://www.youtube.com/watch?v=WwsHYKrjRi8&list=PLa9dKeCAyr7iXpGqNHKXmeqB6LLo7ieS9&index=6
인공 신경망(신경망을 사람들이 인공적으로 만드는 것)에서는 뉴런(신경망 최소 단위)이 다른 뉴런과 연결된 모습을 각각의 층(=레이어 = layer)이란 개념을 사용하여 연결
입력층 : 데이터를 받는 층
출력층 : 이 출력층에 어떠한 값이 전달되었냐에 따라 인공지능 예측 값이 결정
은닉층: 입력층에서 들어온 데이터가 여러 신호로 바뀌어 출력층까지 전달됨. 이때 연결된 여러 뉴런을 지날 때 마다 신호 세기가 변경됨
심층 신경망: 레이어가 여러 층으로 구성된 인공 신경망
딥러닝: 사람의 뇌에서 이루어지는 원리를 이용하여 인공지능을 만드는 방식으로 심층 신경망이 학습하는 과정
한정된 정보만으로 정확한 판단 어려움 → 정보가 많을수록 정확 = 다양한 특징(feature)이 포함된 데이터가 필요함
인공지능이 지금까지 학습한 데이터와 동일 형태 데이터를 인공지능에 넣어서 학습해야 함
입력 데이터가 여러 레이어를 지나며 특정 신호로 전달되며, 신호가 많이 간 쪽으로 판단 내림
신경망 모델이 신호를 정확한 출력값으로 보내지 않는다면, 정확한 출력값으로 보낼 수 있도록 신호 세기를 조정하는 과정이 바로 인공 신경망의 학습 과정
신호 받는 뉴런은 여러 뉴런에서 신호 받음. 신호 세기 변경 전달
신호값 X 가중치(weight) + 편향(bius) 해서 다음으로 전달
가중치: 뉴런과 뉴런 연결선에 있으며 각 선에는 가중치라는 다른 값들이 저장되어 있음
편향: 각 층에 하나의 값으로 존재
인공신경망 학습한다 : 가중치와 편향 값을 데이터에 맞게끔 정교하게 맞추어 간다는 의미
활성화 함수 : 신호 세기 조절. 특히 레이어와 레이어 사이에 있어 여러 뉴런에서 특정한 뉴런으로 들어가는 신호를 종합해 하나의 값으로 바꿔주는 역활을 함
최근 인공 신경망 학습시 – 릭키 렐루(Leaky ReLU) 함수 개발 사용
소프트맥스 함수는 백분율로 딱 떨어지거나 하지 않아 한 눈에 가장 높은 확율을 확인하기 어려운 경우 사용 – 들어오는 값들을 총 합이 1이 되게 만든 다음 그 값들을 비율에 따라 나눠줌
틀렸을 때 → 재학습시 “오차“를 구해야 제대로 학습이 되는지 확인 가능 : 오차값이 줄어들도록 바꿔나감
이진 분류 문제: 남자 or 여자 – 맞으면 오차 0. 틀리면 오차값이 많이 발생하도록(ex 100)
다중 분류 문제: 나이대 예측 – 답에 가까울수록 오차값 낮게. 멀수록 높게 (ex> 20대일때 – 20대는 오차0. 30~40대는 오차 300. 50대는 오차 50을 줌)
특정값 예측 문제(회귀): 나이 예측 – 정답값과 예측 값 차이를 구한 후 이를 더하면 오차값이 됨 ( ex> 35살 – 45살이라고 하면 = 차이는 10세 – 10에 어떤 수식을 더 한 다음에 더함)
오차를 줄인다는것 : 가중치와 편향의 값을 얼마나 데이터에 적절하게 바꾸냐는 것
경사 하강법: 기울기로 가중치 값을 변경 (기울기 – 미분으로 오차 수정)
오차 역전파법(Back Propagation): 오차를 끝에서부터 거꾸로 가면서 줄임, 마지막부터 처음까지 되돌아가면서 경사 하강법을 사용하여 각각의 가중치 값을 수정
인공 신경망에서의 학습 방법 : 뒤로 가면서 가중치를 수정 후 다시 데이터를 흘려보낸 후 결과 값을 봄 → 그 결과 값이 정답과 어떤 차이가 있는지 확인 후 → 오차 역전파법 사용하여 가중치 수정 = 이 과정을 반복해서 오차를 0으로 줄여감
텐서플로 플레이그라운드 : https://playground.tensorflow.org/
뉴런 수가 많을 수록 정교한 학습 가능, 층과 뉴런 수가 늘어날 수록 가중치 계산 값이 늘기에 적당한 층과 뉴런수 잘 정해야 함
검증 데이터와 훈련 데이터의 비율(Ratio of training to test data ) : 테스트 데이터 약 20~30%
노이즈 : 0일 땐 이상값이 X. 실제 데이터엔 노이즈 값이 들어가 있음
배치 데이터 : 한번 학습에 몇 개 데이터 사용하느냐 선택
훈련 데이터와 검증 데이터 구분 이유: 신경망 훈련에 모든 데이터를 쓰지 않고 일부만 사용하기 위함. 데이터 전체를 훈련데이터로 사용하면 훈련 데이터에만 최적화. 다른 유형의 실제 데이터에서 잘 예측 못함 = 오버핏팅 문제 생김
딥러닝시 어떤 데이터를 어떻게 넣을 것인가가 중요. 층의 수와 뉴런의 수를 얼마로 결정한 것인지 또한 중요함
이미지 인식 인공지능 – 합성곱 신경망(CNN) 기법 사용 = 시각 세포 작동 원리. 부분(영역) or 전체 보기
합성곱 신경망은 추출한 데이터=그림을 전체와 부분으로 구분해서 데이터 학습 시키는 방식. 과정은 다양.
순환 신경망 : 재귀(recursive = 원래 자리로 되돌아간다) 신경망으로도 부름
여기선, 하나의 신경망을 계속적 반복해서 학습하는것을 의미
일반적인 인공 신경망(ANN)은 가중치가 한 방향으로 이동하며 변함
순환 신경망은 한 방향이 아니라, 다시 자기자신에게 돌아오는 형태를 가짐
연속 데이터에 대한 결과 예측 하거나 분류할때 사용
일반적 데이터 패턴 학습 + 전후 관계에 대한 패턴 학습
ex> 주식. 변역(ex> 나는 학교에 갑니다 – i school go 가 아닌 선 후 관계 학습 필요)
퀵 드로우(https://quickdraw.withgoogle.com/) 데이터셋 사용
사람들이 그린 순서대로 학습하였기에 – 그림 그리는 과정 예측 가능
https://magenta.tensorflow.org/assets/sketch_rnn_demo/index.html
생성 신경망: 새로운 무언가를 만들어내는 기술 ex> 사진. 음악… 사람들이 어떻게 나이가 들어가는지, 젊었을 때는 어떠한지 그 모습을 생성해 주는 인공지능도 제작 가능
딥 페이크 문제 발생
[모두의 인공지능 with 파이썬] 첫째마당. 인공지능 개념 이해하기
[모두의 인공지능 with 파이썬] 둘째마당. 딥러닝 이해하기
[모두의 인공지능 with 파이썬] 셋째마당 인공지능 개발을 위한 파이썬 첫걸음
[모두의 인공지능 with 파이썬] 넷째마당 딥러닝 프로그래밍 시작하기 1
[모두의 인공지능 with 파이썬] 넷째마당 딥러닝 프로그래밍 시작하기 2 – 숫자 인식 인공지능 만들기