양재 AI 허브/2022.07.04 Mon

이재하·2022년 7월 4일
0

양재 AI 허브

목록 보기
1/13
post-thumbnail

2022.07.04 Mon

Tensorflow-구글
pytorch-페이스북
-->python이 각광받게 됨
교재 : 파이썬으로 만드는 인공지능(참고)

  • 회귀/분류 + "머신"이라는 말을 붙여서 기억하기!
    회귀 : 정답이 연속적인 값
    분류 : 정답이 불연속적인 값
  • 딥러닝의 한계
  1. 너무나 복잡하고 거대한 모델(비싸고 성능이 매우 좋아야함)
    ->경량화 필요
  2. 해석가능성 높여야함
  • 회귀 : 머신러닝뿐만 아니라 딥러닝에서도 사용(강조!)
    정답과 최대한 비슷하게 만드는 것(오차 최소화)이 목표!

  • gradient descent(경사하강법)
    최적의 값을 찾기 위한 거꾸로 된 산을 내려가는 방법(오차가 0과 최대한 가깝게)
    loss function을 최소로 만드는 방법

  • 단순 선형회귀
    선으로 표시, 가장 기본적이고 간단한 회귀 알고리즘, 가장 많이 사용하는 모델

--> 입력값 X와 결과값 Y
--> 다중 선형 회귀, 다항 회귀 : 단순 선형회귀에 더 많은 조건이 들어가는 경우(직선이 아닌 휘어지는 선으로 표시)

  • lr=learning_rate의 약자

  • 과적합과 정규화
    과적합 : 모델이 과도하게 복잡해져 일반성이 떨어진 경우
    과적합 방지 방법 : 교차 검증, 정규화

  • 교차 검증
    훈련용 데이터와 별개의 테스트 데이터, 검증 데이터로 나누어 성능 평가하는 방법

  • 정규화
    모델의 복잡성을 줄인다, 모델에 패널티를 부여함

  • 회귀 알고리즘 평가 지표

  1. MSE : 평균 제곱 오차
  2. MAE : 평균 절대값 오차

분류

정답이 불연속적인 값

예>성적 분류(점수를 A+, B+ 등등으로 표현)
로지스틱 회귀(s자 모양의 곡선 그래프-sigmoid 함수 사용)

  • SVM(Support Vector Machine)
    딥러닝이 나오기 전에 대세였음
    두개의 결과 값으로 분류되는 이진분류 문제 -> SVM 분류 알고리즘으로 해결(근처의 값을 찾아서 결과에 적용-최적의 결정 경계를 찾음, 비슷한 간격, 가장 간격이 넓게끔)

  • 나이브 베이즈 분류
    베이즈 정리, 확률 통계학적 분류 알고리즘

  • KNN 알고리즘
    가까운 거리 내의 이웃의 수에 따라 분류

  • 분류 알고리즘 평가 지표
    <혼동 행렬>

    --> 앞쪽은 진실인지 아닌지를 말하고, 뒤는 겉으로 표현되는 결과를 말함

--> 요새 대세는 여러가지 평가 지표를 보여주는 것

비지도 학습

클러스터링 / 차원 축소

  • 클러스터링
    유사한 개체끼리 군집화하는 것

  • Gaussian Mixture Model(GMM)
    종 모양의 그래프, 클러스터링 형태

  • 차원 축소
    고차원의 데이터를 저차원으로 줄이는 알고리즘
    차원의 저주 발생 방지

Tensorflow

구글에서 개발한 딥러닝 프레임워크
python, c, c++

  • tensor : 수학적 의미, 방향 벡터
  • flow : 데이터 흐름
  • Robust Model(튼튼한 모델) 배포
    학습된 모델을 다양한 Deployment에서 동작 가능(예>Android, iOS, Node Server, Browser, Cloud 등등)

Tensorflow 연산

  • tensorflow 버전 비교
    tensorflow 1.x 버전에서는 Session에서 모든 학습과 계싼을 진행하였다.
    그러나 tensorflow 2.0에서는 파이썬의 함수처럼 바로바로 계산되어 사용할 수 있다.

  • 상수 텐서를 생성
    tf.constant(value, datatype)
    tf.zeros(shape, dtype) : 모든 원소의 값이 0
    tf.ones(shape, dtype) : 모든 원소의 값이 1

  • 시퀀스 텐서를 생성
    tf.linspace(start, stop, num, name=None)
    start부터 시작해서 stop까지 num개의 값을 생성한다.

  • 변수 텐서 생성
    tf.Variable(value, name="name")

  • 텐서 연산
    tf.add(x, y)
    tf.subtract(x, y)
    tf.multiply(x, y)
    tf.truediv(x, y)

신경망

퍼셉트론
-> XOR 연산을 하다가 다층퍼셉트론의 개념이 나옴
다층 퍼셉트론의 레이어 : 입력층, 은닉층, 출력층
-> 신경망과 유사한 모양을 가진 다이어그램이 나옴

profile
SW Engineer

0개의 댓글