[2022 국민대학교 겨울 인공지능 특강] 4주차 1일 학습 내용

하지원·2022년 2월 6일
0
post-thumbnail

이번 주 부터 본격적으로 딥러닝 코딩을 다루게 된다.
우선 머신러닝 및 딥러닝에서 흔히 쓰이는 선형회귀를 코드로 구현하는 방법을 배웠다. 하지만 딥러닝 코딩을 할 때 쓰는 PyTorch 모듈을 사용하기 전에 선형 회귀의 원리를 이해하기 위해 PyTorch 모듈을 사용하지 않고, 관련 식들을 코드로 직접 구현한 코드를 통해 공부했다.

하루 노동 시간 X = [1, 2, 3, 4, 5, 6, 7]
하루 매출 Y = [25000, 55000, 75000, 110000, 128000, 155000, 180000]
예를 들어, 각 하루 노동 시간마다 매출량을 비교하는데, 매출량의 증가가 규칙적이지 않다. 이럴 때 8시간을 일하면 매출이 어떠할지 예측하는 모델을 구현하는 것이다.

머신러닝 및 딥러닝 진행 시 비용(cost) 혹은 손실(loss)이라는 용어가 있다. 실제값과 계산해서 얻은 예상값의 차이를 뜻하는데, 이 손실(loss)을 계산하는 식은 다음과 같다.
우선 가설함수라는 것이 필요하다. H(x) = Wx + b 여기서 W는 식의 기울기인 weight를 뜻하며, b는 bias, 즉, 편향이다.
실제 값인 y에서 가설함수를 통해 얻을 수 있는 예상값을 뺀 값을 손실이라 부르며, y - H(x)로 표현할 수 있다.

그리고 손실함수(loss function)에도 여러가지가 있는데, 대표적으로 Mean Square Error, 줄여서 (MSE)라는 것이 있다.여기서 m은 전체 데이터의 개수다.

계산값과 실제값의 차이를 정확히 확인하기 위해 절대값을 구할수도 있지만, 제곱을 한다. 제곱(square)의 합을 구하고 평균(mean)을 구하는 방식이다.

하지만 이렇게 해서 손실값을 얻어서 끝나는 것이 아니다. 이 손실을 줄이기 위해서는 W, b 값을 바꿀 방법이 필요하다.

이를 위해 미분을 한다. 기울기가 가장 작은, 즉, 0이 되는 부분을 찾는것이 목적이다. 하지만, 이 예제에서는 상관없지만, 식이 2차 함수 이상인 함수의 경우 기울기가 0인 지점이 여러개일 수 있고, 최소점이 아닌 극소점일 수 있는데, 이러한 경우를 조심할 필요가 있다.

profile
국민대 전자공학부, 서강대학교 석사과정, 크래프톤 정글 2기

0개의 댓글