ML 6

ML/DL - Code CheatSheet

Numpy 1. __version__ : 버전 확인 import numpy as np print(np.__version__) 2. array() : 배열 만들기 my_arr = np.array([10, 20, 30], [40, 50, 60]) 결과값: [[10, 20, 30], [40, 50, 60]] 3. sum() : 배열의 각 요소를 모두 더한 값을 반환하기 넘파이 배열은 + 와 * 을 배열의 각 요소를 더하고 곱하는 작업이 가능하다. a = np.array([1, 2, 3]) b = np.array([3, 4, 5]) print(a + b) #결과값: array([4, 6, 8]) print(a * b) #결과값: array([3, 8, 15]) np.sum() 함수에 a * b를 전달하면 넘파이..

카테고리 없음 2023.07.22

캐글 도전기 (2) - 7/5 ~ 7/14

캐글에 대해 알게된 점: 1.0은 불가능하다 일단 캐글에 대해 새롭게 알게 된 점 한 가지가 있는데 캐글 뉴비들에게는 나름 헷갈릴 수 있을 것 같아서 짚고 넘어가려 한다. 캐글을 시작하면 타이타닉이나 주택가격예측 대회를 자연스럽게 거쳐가게 된다. 각 대회에 리더보드를 확인해보면 1.0의 정확도를 받은 사람들이 굉장히 많다는 것을 확인 할 수 있다. 이를 보고 글쓴이는 1.0의 정확도를 받는 것이 이 대회를 완벽하게 이해하고 더 정교한 데이터 전처리와 모델링을 통해서 나오는 이상적인 결과라고 생각했고 이를 위해 한참을 다른 사람들의 코드를 보며 연구했다. 그러던 중 놀라운 결과를 알게 되었는데 1.0의 정확도가 나오는 것은 불가능할 뿐만 아니라 이 대회의 목적이 아니라는 것이었다. 정확도라고 함은 학습 데..

카테고리 없음 2023.07.18

ML/DL(3) - 손실 함수와 경사 하강법의 관계

손실함수와 경사 하강법의 관계를 공부하며 헷갈리고 정확히 무슨말인지 이해가 안 가는 부분들이 있었는데 이들을 짚고 넘어가려 한다. 1. 왜 가중치와 절편을 업데이트하는데에 손실함수를 미분한 값을 사용하는가 선형 회귀의 손실함수는 '제곱 오차(squared error)'로 예측값과 타깃값의 차이를 제곱한 것이다. 이때 제곱 오차가 최소가 되면 데이터의 경향을 가장 잘 표현하는 직선을 찾을 수 있는 것이다. 따라서 제곱 오차 함수의 최솟값을 알아내야 하는데 제곱 오차함수는 2차 함수이므로 기울기에 따라 함수의 값이 낮은 그래프의 최소에 가깝게 이동해야한다. 2차 함수인 이유는 아래와 같이 정리해보면 알 수 있다. x축을 가중치 $w$ 혹은 절편 $b$로 두고 y축을 손실함수로 두었을 때 손실함수의 최소로 이..

카테고리 없음 2023.07.08

ML/DL(2) - 오차 역전파(backpropagation)

'오차 역전파'라는 단어를 이해하는 것은 이 분야를 공부하면서 본인을 처음 흠칫하게 한 부분이었다. 나 같은 입문자가 이해하기 위해서는 부가적인 설명이 필요하다고 생각되는 부분이므로 정리하고 넘어가야겠다. 정방향 계산 일단 쉬운 정방향 부터. '정방향 계산'이란 $ \hat{y} $ 을 구하는 과정을 말한다. 그냥 $ b + \sum_{i=1}^{n}w_{i}x_{i} $ 의 계산이다. 역방향 계산 '역방향 계산'이란 정방향 계산으로 구한 $ \hat{y} $와 $ y $의 오차를 통해 $ w $와 $ b $의 변화율(gradient)를 계산하는 과정이다. 이를 뉴런을 이용한 그림으로 나타내면 아래와 같이 표현할 수 있다. 여기서 책이나 강의를 보면 "오차가 뉴런의 오른쪽 방향에서 왼쪽 방향으로 흐르는 ..

카테고리 없음 2023.07.08

ML/DL(1) - 로지스틱 회귀의 활성화 함수로 비선형 함수를 사용하는 이유

로지스틱 회귀는 이름에 '회귀'라는 단어가 들어가서 선형 회귀 등과 비슷한 알고리즘으로 착각할 수 있으나 분류 알고리즘이다. 로지스틱 회귀에 대한 기본적인 내용을 안다는 전제 하에 로지스틱 회귀의 활성화 함수로 비선형 함수를 사용하는 이유에 대해 알아보자. 활성화 함수? 로지스틱 회귀에서는 위의 이미지에서 볼 수 있듯이 선형 함수의 결과로 얻은 결과 값(z)를 변형시켜서 임계함수(threshold function)에 보내게 되는데 이 역할을 수행하는 함수를 활성화 함수(activation function)이라고 한다. 이후 활성화 함수를 통과한 값(a)를 임계함수에 넣어서 예측을 수행한다. 로지스틱 회귀에서 사용하는 활성화 함수는 '시그모이드 함수'로 비선형 함수인데 z 값을 0~1 사이의 값으로 변형시..

카테고리 없음 2023.07.08

캐글 도전기 (1) - 6/23 ~ 7/1

캐글에 도전하겠다고 마음을 먹었지만 공부를 어디서부터 얼마나 해야 될지 굉장히 막막했다. 그동안 다른 개발공부를 해오며 터득한 해결 방법은 무작정 비싸고 양이 많은 책이나 강의를 결제하기 보다는 쉬운 책 하나를 일단 정독하는 것이 방향성을 잡는데에 큰 도움을 준다는 것이었다. 캐글에 입문하며 본 첫 책은 '쉽게 시작하는 캐글 데이터 분석' 이었고 캐글 대회의 흐름을 맛본다는 소기의 목적은 달성한 것 같다. 책을 읽으며 간단한 데이터 분석에 대한 설명과 함께 캐글 대회의 공식 튜토리얼 대회인 타이타닉 대회와 주택 가격 예측 대회를 직접 해보며 데이터 분석의 흐름을 느낄 수 있었다. 이에 대한 내용을 공유하고자 한다 1) 데이터 분석 데이터 분석은 데이터 혹은 해당 일의 범위에 따라 그 목적도 다양함 - 예..

카테고리 없음 2023.07.04