분류 전체보기

· 인공지능
시그모이드 역할 z = b + ∑ w_i x_i로 표현할 수 있다. z는 활성화 함수를 통과하여 a가 된다. 이때 시그모이드 함수는 z를 0~1 사이의 확률 값으로 변환시켜준다. 시그모이드 함수는 오즈비 → 로짓 함수 → 시그모이드 함수를 거쳐 탄생한다. 오즈비 오즈 비는 성공확률과 실패 확률의 비율을 나타내는 통계이다. 오즈 비를 그래프로 그리면 다음과 같다. 성공 확률이 0부터 1까지 증가할 때 오즈 비의 값은 처음에는 천천히 증가하지만 1에 가까워지면 급격히 증가한다. 로짓 함수 오즈 비에 로그 함수를 취하여 만든 함수를 로짓 함수라고 한다. 로짓 함수는 p가 0.5일 때 0 이되고 p가 0과 1일 때 각각 무한대로 음수와 양수가 된다. 이제부터 logit(p)를 z라 하자 로지스틱 함수 위 식을 ..
· 인공지능
로지스틱 회귀를 제대로 이해하기 위해서는 먼저 알아볼 개념이 몇 가지 있다. 그중 하나는 퍼셉트론이다. 퍼셉트론이란? 1957년 코넬 항공 연구소의 프랑크 로젠블라트는 이진 분류 문제에서 최적의 가중치를 학습하는 알고리즘을 발표했다 이것이 퍼셉트론이다. 선형 회귀와 유사하게 직선 방정식을 사용한다. 하지만 퍼셉트론은 마지막 단 게에서 샘플을 이진 분류하기 위하여 계단 함수를 사용한다. 계단 함수를 통과한 값을 다시 가중치와 절편을 업데이트하는 데 사용한다. 위 구조를 방정식으로 표현하면 w1x1 + w2x2 + b = z이다. z가 0보다 크거나 같으면 1로, 0보다 작으면 -1로 분류한다. 이때 1로 분류되는 걸 양성 클래스, -1을 음성 클래스라고 한다. 아달린 퍼셉트론에서 조금 더 개선한 적응형 선..
· Python
함수 함수를 이용하면 프로그래밍을 더욱 간단하고 파워풀하게 만들 수 있다. 파이썬에서 함수는 매개변수, 리턴에서 다른 언어들과 달리 유용한 형태가 많다. 함수 기본 기본적인 함수라 설명은 생략하겠다. 기본값 매개변수 사용(default argument) 다른 언어와 달리 함수 자체에 기본적인 매개변수의 값을 설정할 수 있다. 따라서, 해당 매개변수가 전달되지 않았다면 기본값으로 함수를 실행한다. 또한, 전달할 때 변수 이름 = 값과 같은 형태로 매개변수를 전달할 수 있다. 굳이 순서를 맞춰서 전달할 필요가 없어지기 때문에 매우 편리하고 정확해진다. 가변 매개변수 (arbitrary argument) 파이썬은 매개변수의 개수도 가변적으로 사용할 수 있다. 매개변수 마지막에 전달되는 매개변수의 길이를 한정하..
· Python
조건문 조건문은 프로그래밍에 있어서 분기를 결정해야 하는 중요한 역할을 한다. 말 그대로 조건을 체크한 뒤, 어느 코드를 실행할지 결정하는 문법이다. 파이썬은 들여쓰기로 코드 블록을 구분하기 때문에 유의해서 코드를 작성해야 한다. 기본적인 if문 구조이다. if 뒤에 조건을 적고 ':' 로 코드 블록의 시작을 알린다. else문도 마찬가지 이다. if~else문의 간단한 예시이다. print('수를 입력하세요 : ') a = int(input()) if a == 0 : print('0은 나눗셈에 이용할 수 없습니다.') else : print('3 /', a, '=', 3/a) 조건에는 ==같은 조건도 가능하지만, 부등호를 사용하는 범위를 제한하는 조건 또한 사용 가능하다. 그 외에도 데이터 타입이나 여..
· 인공지능
뉴런 만들기 딥러닝은 뇌에 있는 뉴런을 따라한 것이다. 앞서 공부한 내용으로 뉴런을 만들어 보면 더욱 이해가 빠를 것이다. 생성자 우선, 생성자에서 필요한 변수를 선언하고 초기화한다. def __init__(self): self.w = 1.0 self.b = 1.0 여기서 1.0은 임의로 선정한 수이다. 다른 수여도 아무런 문제가 없다. 정방향 계산 정방향 계산은 예측값을 계산하는 과정이라 생각해도 된다. 즉, 기울기와 절편을 예측하는 것이다. def forpass(self, x): y_hat = x * self.w + slef.b#직선 방정식 계산 return y_hat y = wx + b라는 식을 이용하여 y_hat을 구하는 과정이라 생각하면 된다. 그럼 이제 w와 b를 적절히 조정하여 올바른 모델을..
· 인공지능
손실 함수란? 손실 함수는 쉽게 말해 예상한 값과 실제 타깃 값의 차이를 함수로 정의한 것을 말한다. 그 중 하나인 제곱 오차로 이해해보자. 제곱 오차 제곱 오차는 타깃값과 예측값을 뺀 다음 제곱한 것이다. SE = (y - k)^2 그럼 이 함수의 기울기를 구하려면 제곱 오차를 가중치나 절편에 대해 미분하면 된다. 기울기를 구하는 이유는 기울기를 알면 최솟값을 구할 수 있기 때문이다. SE를 w에 대해 편미분을 진행한다면, -(y - k)x라는 값을 구할 수 있다. 손실 함수를 최소화 시키기 위해서는 저 값을 빼면 된다. w = w + (y - k)x 이 형태는 저번 포스트에 작성한 (w + w_rate * err)와 같은 형태이다. 절편도 동일하게 시행한다. 그러면 -(y - k)1이란 값을 구할 수..
· 인공지능
경사 하강법이란? 저번 포스트에서 선형 회귀를 다루었다. 데이터에 가장 적합한 함수를 그려나갈 때 어떻게 데이터에 맞춰 나가며 그릴 것인가? 그에 대한 답 중 하나가 경사 하강법이다. 경사 하강법 적용 y = ax + b라는 식이 있다. 이 식을 데이터에 맞는 식으로 바꾸기 위해서는 a, b를 조정해야 한다. 우선 a, b를 임의의 값으로 초기화한다. 나는 모두 1이라 하겠다. a = 1.0 b = 1.0 첫 데이터를 x에 입력한다면 y값을 예측할 수 있다. (예측값 y를 k라 하자) 그다음 우리는 k와 y(실제 답)을 비교하여 얼마나 잘 예측했나 판단할 수 있다. 내가 임의로 초기화한 값이 바로 들어맞을 확률은 거의 0%라고 생각한다. 그럼 이제 a와 b값을 조정하여 더 잘 맞추는 모델을 만들어 보자...
데이터 불러오기(with pandas) import pandas as pd 데이터를 다루는데 유용한 기능을 제공하는 모듈이다. # save filepath to variable for easier access melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv' # read the data and store data in DataFrame titled melbourne_data melbourne_data = pd.read_csv(melbourne_file_path) # print a summary of the data in Melbourne data melbourne_data.describe() 이런 식으로 path를 지정하고..
https://www.kaggle.com/ Kaggle: Your Machine Learning and Data Science Community Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data science goals. www.kaggle.com kaggle이라는 인공지능 및 데이터사이언스에 대한 좋은 사이트가 있다. 앞으로 여기 있는 코드를 무작정 따라해보고 이해하며 공부할 예정이다.
· 인공지능
선형 회귀란? 선형 회귀는 특정 데이터를 모아 놓고 이에 맞는 함수를 찾아내는 과정이라 생각하면 된다. 1차 함수로 표현하면 쉽게 이해할 수 있다. y = ax + b라는 함수가 있다고 가정하자. 이 함수의 그래프는 다음과 같을 것이다. 이런 그래프가 있다면 우리는 a, b만 안다면 x에 대한 값을 예측할 수 있다. 하지만, 데이터가 함수에 딱 맞지 않는다면 어떻게 해야 할까?? 이런 데이터가 있다면, a값을 조절하여 점들의 위치로 그래프를 조정할 수 있다. 이렇게 평행이동으로 맞출 수 있는 데이터가 있다면, b값만 조정하면 맞출 수 있다. 우리는 y = ax + b라는 그래프에서 a, b값을 조정하여 데이터에 맞는 그래프를 그리려 노력했다. 이러한 과정이 선형 회귀라 할 수 있다.
hvv_an
'분류 전체보기' 카테고리의 글 목록 (52 Page)