텐서플로 공부 1차시

Lala·2022년 6월 30일
0

인공지능은 간단히 인간의 지능을 모방해 사람이 하는 일을 기계가 할 수 있게 하는 기술이다
인공지능과 머신러닝 딥러닝 관계는 인공지능 > 머신러닝 > 딥러닝.


딥러닝과 머신러닝은 학습 모델을 제공해 데이터를 분류 할 수 있는 기술이지만 접근 방식에서 차이가 있다```

💜 접근 방식

머신러닝

  • 데이터를 인간이 먼저 처리한다
  • 이미지 데이터라면 사람이 학습 데이터를 컴퓨터가 인실 할 수 있도록 준비해줘야 한다.
  • 머신러닝은 범용적인 목적을 위해 제작되어 데이터의 특징을 스스로 추출하지 못해
    이 과정을 사람이 처리해줘야 한다.
  • 각 데이터 특성을 컴퓨터에 인식시키고 학습시켜 문제를 해결

딥러닝

  • 인간이 하던 작업을 생락하고, 대량의 데이터를 신경망에 적용해 컴퓨터가 스스로 분석한 후 답을 찾게 한다.


💙 딥러닝 머신러닝 차이점



구분 머신 러닝 딥러닝
동적원리입력 데이터에 알고리즘을 적용해 예측정보를 전달하는 신경망을 이용해 데이터 특징 및
관계 해석
재사용입력 데이터를 분석하기 위해 다양한
알고리즘을 사용하고 동일한 유형의
데이터 분석을 위한 재사용은 불가능.
구현된 알고리즘은 동일한 유형의 데이터를 분석하는데
재사용 가능
데이터일반적으로 수천개의 데이터 필요수백만개의 데이터 필요
훈련시간단시간장시간
결과일반적으로 점수 or 분류 등 숫자 값출력은 점수, 텍스트, 소리 어떤 것이든 상관없이 가능



1. 머신러닝이란

  • 머신러닝은 컴퓨터가 스스로 대용량 데이터에서 지식이나 패턴을 찾아서 학습하고 수행하는 것으로 즉 컴퓨터가 학습을 할 수 있도록 알고리즘과 기술을 개발하는 분야라고 할 수 있다.


(1) 머신러닝 학습과정

  • 머신러닝은 위 그림과 같이 크게 학습 단계와 예측/추론 단계로 구분할 수 있다. 훈련 데이터를 머신 러닝 알고리즘에 적용해 학습시키고, 이 학습 결과물로 학습 모델이 생성이 된다. 예측 단계에서는 학습 단계에서 생선된 모형에 새로운 데이터를 적용해 예측한다.

    ⭐ 레이블은 지도 학습에서 정답을 의미한다


  • 머신러닝의 주요 구성요소는 데이터와 모형이다.

  • 좋지 않은 데이터를 가지고 현상의 특성을 반영해 학습하기 어렵기 때문에
    특징이 잘 반영되고 편향되지 않은 훈련데이터를 확보하는 것이 중요하다.

  • 학습에 필요한 데이터가 수집이 되면 훈련데이터셋테스트 데이터셋 용도로 분리해 사용한다.

  • 모델은 머신러닝의 학습단계에서 얻은 최종 결과물로 가설이라고도 불린다.
    모델의 학습 절차1. 모델 선택 -> 2. 모델학습 및 평가 -> 3. 평가를 바탕으로 모델 업데이트를 반복하면서 주어진 문제를 잘 풀 수 있는 모델을 찾는다.



(2) 머신러닝 학습 알고리즘

  • 지도학습, 비지도 학습, 강화학습이 있다.



1) 지도학습

  • 정답이 무엇인지 컴퓨터에 알려주고 학습시키는 방법



2) 비지도 학습

  • 정답을 알려주지 않고 특징(예시 : 날개를 가지고 있는 동물)이
    비슷한 데이터(예시 : 비둘기, 독수리) 를 클러스터링(범주화)하여 예측하는 학습기법
  • 아래 그림을 보면 왼쪽은 지도학습 오른쪽은 비지도 학습이다.
    지도학습은 주어진 데이터에 비해 A 또는 B로 확실한 분류가 가능하지만
    비지도 학습은 유사도 기반으로 특징이 유사한 데이터끼리 클러스터링으로 묶어서 분류한다.



3) 강화 학습

  • 분류할 수 있는 데이터가 있는 것도 아니고 데이터가 있다고 해서 정답이 없기에 매우 어렵고 복잡하다.
  • 강화학습은 자신의 행동에 대한 보상을 받으면서 진행한다.
  • 대표적인 사례로 게임
    -> 쿠키런을 예시로 했을 때, 쿠키가 Agent이며 게임 배경이 환경(environment)이다.
    여기서에이전트가 변화하는 환경에 따라 다른 행동을 취하며 동전이나 젤리를 얻는 행동에 따라 몸집이 커지는 보상을 얻는다.
    -> 강화학습은 이런 보상이 커지는 행동은 자주하고 줄어드는 행동은 덜하도록 해 학습을 진행한다.

덜 배움.




2. 딥러닝이란?

  • 인간의 신경망 우너리를 모방한 심층 신경망 이론을 기반으로 고안된 머신러닝 방법중 하나.
    -> 딥러닝은 인간의 뇌를 기초로 하여 설계...
  • 인간의 뇌가 엄청나게 많은 수의 뉴런과 시냅스로 구성되어 있는 것을 보고 컴퓨터에 뉴런과 시냅스 개념을 적용했다.
  • 복잡하게 연결된 수많은 뉴런을 병렬 연산하여 기존에 컴퓨터가 수행하지 못했던 음성, 영상인식 등의 처리를 가능하게 한다.

수상돌기 : 주변이나 다른 뉴런에서 자극을 받아들이고, 이 자극들을 전기적 신호 형태로 세포체와 축삭돌기로 보내는 역활
시냅스 : 신경세포들이 이루는 연결부위. 한 뉴런의 축삭돌기와 다른 뉴런의 수상돌기가 만나는 부분.
축삭돌기 : 다른 뉴런에 신호를 전달하는 기능을 하는 뉴런의 한 부분. 한개만 존재
축삭말단 : 전달된 전기 신호를 받아 신경 전달 물질을 시냅스 틈새로 방출



(1) 딥러닝 학습과정

  • 머신러닝과 학습과정이 크게 다르지 않지만 세세한 부분까지 다루기에는 딥러닝 분야가 넒어 데이터 준비부터 모델을 정의하고 사용하는 부분까지 진행

데이터 준비

초보라면 텐서플로나 케라스에서 제공하는 데이터셋을 사용하는 것이 좋다. 데이터들이 전처리가 되어 있는 상태여서 바로 사용할 수 있고, 많은 예제코드를 쉽게 얻을 수 있기 때문이다.

모델 정의

모델 정의 단게에서 신경망을 생성. 일반적으로 은닉층 개수가 많을 수록 성능이 좋아지지만 과적합이 발생될 확률이 높다. 따라서 모델 정의 단계에서 신경망을 생성할 때 제대로 생성하는 것이 좋다.

모델 컴파일

활성화 함수, 손실 함수, 옵티마이저를 선택한다. 이때 데이터 형태에 따라 다양한 옵션이 가능. 훈련 데이터셋 형태가 연속성이라면 평균 제곱(MSE)를 사용할 수 있고, 이진 분류라면 크로스 엔트로피를 선택한다. 과적합을 피할 수 있는 활성화 함수 및 옵티마이저 선택이 중요하다.

모델의 훈련

훈련 단계에서는 한 번에 처리할 데이터 양을 지정한다. 이때 한번에 처리해야 할 데이터가 많으면 학습속도가 느리고 메모리 부족이 될 수 있어 데이터 수를 적당하게 선택하는 것이 중요하다.
따라서 전체 훈련 데이터셋에서 일정한 묶음으로 나눠 처리할 수 있는 배치와 에포크 선택이 중요하고, 이 훈련 과정에서 값의 변화를 시각적으로 표현해 눈으로 확인하면서 파라미터하이퍼파라미터에 대한 최적의 값을 찾을 수 있어야 한다.


✔️ 파라미터 = 모델 내부에서 결정되는 변수
✔️ 하이퍼파라미터 = 튜닝 또는 최적화해야하는 변수로 사람들이 선험적 지식으로 설정해야 하는 변수


- 훈련 데이터셋 1000개에 대한 배치 크기가 10이라면 샘플단위 10개마다 모델의 가중치를
한번씩 업데이트 시킨다는 의미로 총 100번(1000/10)의 가중치가 업되이트 된다.
이때 에포크가 20이고 배치크기가 10이라면. 가중치를 100번 업데이트 하는 것을 총 20번 반복한다는 의미이다. 각 데이터 샘플이 총 20번씩 사용되기에 가중치가 총 2000번 업데이트 된다.

모델 예측

검증 데이터셋을 생성한 모델에 적용해 실제로 예측을 진행해보는 단계.



(2) 딥러닝 학습 알고리즘

이미지 분류

  • 이미지 또는 비디오상의 객체를 식별하는 컴퓨터 비전 기술

  • 컴퓨터 비전기술에서 가장많이 사용되는 합성곱 신경망(CNN)은 목적에 따라 이미지 분류, 이미지 인식, 이미지 분할로 분류 가능.

    이미지 분류 : 이미지를 알고리즘에 입력하면 그 이미지가 어떤 클래스에 속하는지 알려주기에 이미지 데이터를 유사한 것끼리 분류할 때 사용.

    이미지 인식 : 사진을 분석하여 사진 안에 있는 사물의 종류를 인식하는 것.

    이미지 분할 : 영상에서 사물이나 배경 등 객체 간의 영역을 픽셀 단위로 구분하는 기술.
    - 이미지 인식

  • 시계열 데이터를 분류할 때 사용되는 `순환 신경망(RNN)

  • 주식 데이터와 같이 시간 별 데이터가 있을 때 사용하긴 하지만 역전파 과정에서 기울기 소멸 문제가 발생하는 단점.

  • 따라서 3개의 게이트. 망각 게이트(과거 정보를 잊기 위한 게이트), 입력 게이트(현재 정보를 기억하기 위한 게이트), 출력 게이트(최종 결과를 위한 게이트)를 추가하여 위의 기울기 소멸 문제를 해결한 것이LSTM이다

profile
먀먀먐

0개의 댓글