본문 바로가기

Tech Stack/Machine learning

기계학습 - 1

기계학습 공부 1

 

기계학습을 공부하며 인공지능을 폭 넓게 더욱 공부해보고자 한다.

 

튜링 테스트

- 질문자가 올바로 판정한 횟수가 실험 횟수의 절반 이하라면

컴퓨터가 사람과 구분할 수 없는 수준으로 튜링 테스트를 통과한 것

 

IBM의 아서 새뮤얼은 최초의 상업용 컴퓨터 IBM 701로 체커스라는 소프트웨어를 개발

1959년 아서 새뮤얼이 체커 프로그램을 이용한 실험결과를 발표하면서 처음 사용

 

조작적 정의 를 한 것은 1950년 튜링이 발표한 논문이 처음

 

인공지능은 휴리스틱을 찾는 것을 가장 중요하게 여김

 

인공신경망의 시작 --> 1958년에 프랭크 로젠블랫이 만든 퍼셉트론

 

마빈 민스키와 시모어 패퍼트의 1969년 저서 퍼셉트론이 출간되고 변화

 

 

문제와 논리 탐색을 사람이 이해할 수 있는 기호를 표현하여 답을 찾으려고 하는 인공지능의 흐름을 기호주의라고 하고, 퍼셉트론처럼 연결된 요소가 학습을 통해 해법을 스스로 찾도록 만드려는 방식을 연결주의라고 함

 

인공지능의 추운겨울

단순한 퍼셉트론으로는 선형분리만 가능

--> 연구의 축소

 

워렌 맥컬록 월터 피츠가 획기적인 논문을 통해 자신들의 신경망 모델로 모든 종류의 이진 논리 게이트를 구현할 수 있음을 증명

 

오류역전파 발견

경사하강 방식으로 가능하게 함

 

층을 더욱 깊이 쌓는 심층망 연구가 진행되면서 오류 역전파 만으로는 모델학습이 어려움

출력 부분의 오류가 입력쪽에 가까운 네트워크 층까지 잘 전파되지 않는다는 것

합성곱 신경망으로 모델을 만들어 냄으로써 심층신경망 효과적으로 학습

 

변경 가능한 파라미터에 의해 동작이 결정되는 융통성있는 프로그램을 만ㄷ름

이것을 모델이라 함

좋은 동작이 나오도록 파라미터를 변경하는 일을 하는데 이 과정을 학습이라고 함

강의 --------------------------------

심층신경망 - 은닉층이 두개이상

--> 층이 많아질수록 동작이 잘 되지 않는다

그레디언트 소실 --> 활성화 함수 시그모이드 함수의 미분이 1/4이 max, 층이 깊어진 후 역전파 될 때 에러x활성화함수미분 = 0으로 간다.

델타w가 0으로 간다는것은 결국 연결강도가 조정이 되지 않음

성능이 좋아지지 않는다.

 ------------------------------------

오버피팅

--> train데이터에 지나치게 정확함

정규화 dropout 데이터 수를 늘리거나 한 후 해결 함

 

지도학습 --> 교사에 의해 데이터와 정답의 역할을 하는 레이블을 제공받음

 

비지도학습 --> 군집화, 주어진 데이터를 특성에 따라 둘 이상의 그룹으로 나누는 것

 

강화학습 --> 보상 및 처벌의 형태로 학습데이터가 주어지며 주로 차량 운전이나 상대방과의 경기같은 동적환경에서 프로그램의 행동에 대한 피드백만 제공

 

 

준지도 학습 --> 우리가 실제로 구할 수 있는 데이터에는 레이블이 없는 경우가 많고, 레이블은 사람이 부여하는 경우가 많음

지도학습 방식의 훈련을 수행한 뒤에 레이블 없는 대다수 데이터에 대해 학습을 수행

 

머신러닝의 핵심적인 문제는 알고리즘과 데이터

 

 

머신러닝의 문제

 

데이터 편향--> 확보된 데이터가 대표하는 모집단의 분포를 제대로 반영하지 못하고 일부의 특성만을 가지고 있는 경우,

(너무 적은 수, 모집단 속한 대상을 골고루 추출하지 못 함)

부정확성 --> 데이터의 품질이 낮아 이상치와 잡음을 포함,

무관함 --> 데이터는 많이 확보했지만 무관함

 

머신러닝에서는 선형대수, 미적분, 확통 등 빈번히 등장함

 

 

 

 

스칼라 --> 1,2,3.14... 등과 같이 크기 값을 가지는 양

벡터 --> 순서가 있는 스칼라 값의 배열을 의미

일반적으로 하나의 열로 내려가며 표기하는 열벡터 표기법을 사용

 

열벡터를 전치시킬 경우 행벡터로 변환시킬 수 있음

 

스칼라 값이 크기만을 가진다면 벡터는 크기와 방향을 갖는 값.

 

벡터의 크기를 벡터의 노름이라고 한다.

 

p=1이라면 각 차원별 거리의 합인 맨해튼 거리가 되고, l1 노름이라고 함

p=2이면 벡터의 시작점에서 끝점을 화살표로 표현할 때, 화살표의 길이와 같은 유클리드 노름이나 l2노름이라 부름

p를 생략하고 노름을 사용할 경우 일반적으로 p=2인 l2노름임

 

 

두 벡터를 더하거나 빼기 위해서는 두벡터의 차원이 동일해야 함

 

가장 간단하면서 벡터 연산 여러 영역에서 유용한 곱은 아다마르 곱

벡터 덧셈과 뺄셈과 동일한 방식으로 원소별 곱을 구하여 새로운 벡터를 만듦

 

점곱과 가위곱은 각각 스칼라곱 벡터곱

 

점곱이 갖는 기하적 특성

 

값이 두 벡터가 이루는 사잇값 알파의 코사인 값에 비례

 

가위곱은 벡터곱이므로 크기와 방향을 갖는 새로운 벡터

크기는 두 벡터의 크기와 사잇각의 사인값에 비례

방향은 두 벡터에 동시에 수직인 방향의 단위 벡터 d

 

 

 

 

미분이란? 순간변화량을 구하는 것

독립 변수값의 변화량에 대한 함수값 변화량 비의 극한

 

연쇄법칙 은 다음과 같이 어떤 함수 y를 x에 대해 미분할 때, 매개변수 t를 두어 다음과 같이 미분

 

dy/dx = dy/dt * dt/dx

 

 

 

 

편미분?

둘 이상의 변수들을 가지는 함수 f가 있을 경우 이 함수를 각각의 변수에 대해서 독립적으로 미분을 하는 방식

 

 

 

 

 

모델은 현재 파라미터를 바탕으로 어떤 행위를 할 것이며, 그 결과는 보통 차이가 남

이것이 --> 오차

 

학습이란 오차가 줄어드는 방향으로 파라미터를 변경하는 일

 

세타E => -일때 정방향

세타E => +일때 정방향

 

현재 가중치 w위치에서 오차 곡면의 기울기를 안다면 기울기를 따라 내려가 곡면을 낮은곳으로 향하게 할 수 있음

최적해에 도착했다면, 기울기 벡터가 0벡터가 될 것이며 경사하강법을 통한 최적화임

 

 

과적합

데이터수가 너무 적음

모델이 너무 복잡

 

과소적합

새로운 데이터 뿐만 아니라 학습 데이터 조차 제대로 설명하지 못함

 

규제 혹은 정칙화 기법을 통해 해결

 

P라는 벌칙항을 주어 오차를 줄임

 

 

'Tech Stack > Machine learning' 카테고리의 다른 글

기계학습 6 - 역전파 공부  (0) 2024.01.08
기계학습 - 5 다항회귀, 지니 불순도, SVM  (3) 2024.01.02
기계학습 4 - predict, 분류, 등  (1) 2024.01.01
기계학습 - 3  (0) 2023.12.27
기계학습 - 2  (1) 2023.12.27