케라스 창시자에게 배우는 딥러닝_1장

코넬·2022년 11월 15일
0

DeepLearning_Keras

목록 보기
1/13
post-thumbnail


😊인공지능, 머신러닝, 딥러닝의 역사를 알아보자!

인공지능: 보통의 사람이 수행하는 지능적인 작업을 자동화하기 위한 연구 활동
머신러닝: 명시적으로 프로그램 되는 것이 아니라 훈련 되는 것. 어떤 작업과 관련 있는 많은 샘플을 제공하면 이 데이터에서 통계적 구조를 찾아 그 작업을 자동화하기위한 규칙을 만들어냄.

머신러닝 필요조건
입력 데이터 포인트 : 데이터 종류
기대 출력 : 학습 후 나오는 기대 결과값
알고리즘의 성능을 측정하는 방법 : 알고리즘의 작동 방식을 교정하기 위한 신호

머신러닝과 딥러닝의 핵심문제는 입력과 출력으로 구성된 샘플로부터 학습하는 과정이다. 기대 출력에 가까워지도록 입력 데이터의 유용한 표현을 학습하는 것.
표현 데이터를 인코딩(encoding)하거나 표현하기 위해 데이터를 바라보는 또 다른 방법
학습 유용한 데이터 표현을 만드는 데이터 변환을 피드백 신호를 바탕으로 자동으로 탐색하는 과정 = 더 간단한 규칙으로 문제를 해결할 수 있음.

딥러닝이 특별한 이유
딥의 의미 연속된 층으로 표현을 학습한다는 개념 = 연속된 층으로 표현을 학습한다.
딥러닝 = 층 기반 표현 학습 = 계층적 표현 학습
심층 신경망을 정보가 연속된 필터를 통과하면서 순도 높게 정제되는 다단계 정보 추출 과정을 진행한다.

즉, 머신러닝은 1~2개의 데이터 표현 층을 학습하는 경향이 있으며, 이를 얕은 학습이라고 부른다.
딥러닝은 층을 겹겹이 쌓아 올려 구성한 신경망이라는 모델을 사용하여 층 기반 표현을 학습한다.

결국 딥러닝이나 인공지능이나.. 뇌를 따라한 것이 아닌 수학적 모델일 뿐...


딥러닝의 작동 원리 이해하기

가중치 : 층이 입력 데이터를 처리할 때 일련의 숫자로 이루어진 층의 가중치에 저장됨.
파라미터 : 층에서 일어나는 변환은 층의 가중치를 파라미터로 가지는 함수로 표현됨.
학습 : 주어진 입력을 정확한 타깃에 매핑하기 위해 신경망의 모든 층에 있는 가중치 값을 찾는 것을 의미함.
손실 함수 : 신경망의 출력을 제어하는데 출력이 기대하는 것보다 얼마나 벗어났는지를 측정해야함. 이를 담당하는 함수 = 목적 함수 = 비용 함수 라고도 부른다.

역전파 알고리즘을 구현한 옵티마이저가 손실 함수로 나온 결과값을 피드백 신호로 사용하여 현재 샘플의 손실 점수가 감소되는 방향으로 가중치 값을 조금씩 수정함.
훈련반복을 통하여 네트워크가 모든 샘플을 처리하면서 가중치가 조금씩 올바른 방향으로 조정되고 손실 점수가 감소하게된다. 충분히 반복하면 손실 함수를 최소화하는 가중치 값을 산출한다.


딥러닝의 특징

머신 러닝 기법은 입력 데이터를 간단한 변환을 통해 정제된 표현이나 데이터를 얻어야하는데, 이런 데이터의 좋은 표현을 수동으로 만드는 것을 특성 공학(feature engineering)이라고 한다.
하지만 딥러닝을 사용하면 특성 공학 단계를 완전히 자동화한다.

  1. 딥러닝을 사용하면 특성을 직접 찾는 대신 한 번에 모든 특성을 학습한다.
  2. 머신러닝 워크플로우(workflow)를 매우 단순화 시켜주므로 고도의 다단계 작업 과정을 하나의 end-to-end 딥러닝 모델로 대체할 수 있다.
  3. 딥러닝의 변환 능력은 모델이 모든 표현 층을 순차적(탐욕적greedily)이 아닌 동시에 공동 학습을 시킨다.
    덕분에 내부 특성 하나 변화시키면 자동으로 주변 변화에 모델이 적응하게된다 !
  4. 딥러닝 데이터 학습 방법 에는 층을 거치면서 점진적으로 더 복잡한 표현이 만들어진다. & 이런 점진적 중간 표현이 공동으로 학습된다.

왜 딥러닝이 지금 떠오르고 있는걸까?

하드웨어 : 시중 판매되는 CPU가 5000배 정도 빨라졌다. 딥러닝 모델을 돌리는데 더욱 유용한 환경 체제가 만들어지고 있다. GPU를 넘어 더 효율적이고 특화된 딥러닝 칩에 투자하기 시작하였고, 구글에서는 텐서 처리 장치(Tensor Processing Unit, TPU)를 만들어 기존 GPU보다 빠르고 에너지 소비도 더욱 효율적인 도구를 보여줬다.

데이터 : 1400만 개의 이미지를 1000개의 범주로 구분해 놓은 ImageNet데이터셋 덕분에 딥러닝 개발의 연료를 제공하였다.

알고리즘 : 1. 신경망 층에 더 잘 맞는 활성화함수(activation function)
2. 층별 사전 훈련을 불필요하게 만든 가중치 초기화(weight initialization) 방법
3. RMSProp와 Adam 같은 더 좋은 최적화 방법
등 기술의 향상으로 10개 이상의 층을 가진 모델을 훈련시킬 수 있게 되었고, 딥러닝의 커다란 발전을 불러일으켰다.

딥러닝의 대중화 : 딥러닝 분야에서 사용되는 도구의 대중화로, 파이썬 스크립트 기술만 있다면 고수준의 딥러닝을 연구하는데 충분해졌다.


중요한 문제,, 이 이슈가 지속될까?

딥러닝의 핵심 특징만 본다면 판단내릴 수 있다.
단순함 : 딥러닝은 특성 공학이 필요하지 않기 때문에 복잡하고 불안정한 많은 엔지니어링 과정을 end-to-end로 훈련시킬 수 있는 모델로 가꾸어준다. 연산 과정이 기가막히게 줄어든다는 점!
확장성 : GPU 또는 TPU에서 쉽게 병렬화할 수 있기 때문에 무어의 법칙 혜택을 크게 볼 수 있다. 어떤 크기의 데이터셋에서도 훈련될 수 있다는 것도 강점 !
다용도와 재사용성 : 딥러닝 모델은 처음부터 다시 시작하지 않고 추가되는 데이터로도 훈련할 수 있다. 대규모 제품에서 사용되는 모델에서 연속적인 온라인 학습(online learning)을 가능하게 한다!

이것만 봐도... 딥러닝이 모든 문제를 해결할 수 있을 때까지는 이슈의 중심이 되지 않을까 판단할 수 있었다. 판단은 여러분의 몫이겠죠..?😎

출처 : 케라스 창시자에게 배우는 딥러닝 개정2판

profile
어서오세요.

0개의 댓글