본문 바로가기

Python/AI 수학 with Python

(33)
[Python] 단일 뉴런의 학습 구현 이 내용에 들어가기에 앞서, 아래 글을 참고하면 이해하는데 도움이 될 것이다. https://taichi1.tistory.com/48 [Python] 뉴럴 네트워크(딥러닝) 개요 taichi1.tistory.com 데이터 설정 [In] # 입력 데이터 준비 %matplotlib inline import numpy as np import matplotlib.pyplot as plt X = np.linspace(-np.pi/2, np.pi/2, 100) # 입력 T = (np.sin(X) + 1) / 2 # 정답 n_data = len(T) # 정답 개수 # ---- 그래프 그리기 ----- plt.plot(X, T) plt.xlabel('X', size = 14) plt.ylabel('T', size = ..
[Python] 뉴럴 네트워크(딥러닝) 개요
[Python] 로지스틱 회귀 구현 데이터 설정 [In] # 데이터 설정 %matplotlib inline import numpy as np import matplotlib.pyplot as plt n_data = 1000 # 데이터 개수 X = np.zeros((n_data, 2)) # 입력 데이터 T = np.zeros(n_data) # 정답 데이터 for i in range(n_data): # x1, x2 좌표를 랜덤으로 설정 x1_rand = np.random.rand() # x1 좌표 x2_rand = np.random.rand() # x2 좌표 X[i, 0] = x1_rand X[i, 1] = x2_rand # x1가 x2보다 큰 경우일 때 정답 라벨 1로 지정 # 정규분포를 이용해 조금 불명확하게 설정 if x1_rand > ..
[Python] 다항식 회귀 구현 이번 내용은 미적분을 기반으로 이루어져 있기 때문에, 이해가 잘 안된다면 다음을 참고하도록 하자. https://taichi1.tistory.com/34 [Python] 경사하강법 구현 [In] # 경사하강법 구하기 %matplotlib inline import matplotlib.pyplot as plt import numpy as np def my_func(x): # 최솟값을 구하는 함수 return x**2 - 2*x def grad_func(x): # 도함수 return 2*x - 2 lr = 0.1 # 학습계수 x = 4.0 # 초깃 taichi1.tistory.com 이 외에도 정규분포 등등 이해가 안가는 부분은 전에 있는 페이지들을 참고하면 전부 이해 가능하다. 데이터 설정 [In] # 데이..
[Python] 정보량과 엔트로피, 교차 엔트로피 구현 python에서 밑이 2인 로그는 numpy의 log2() 함수로 계산이 가능하다. [In] # 정보량 %matplotlib inline import numpy as np import matplotlib.pyplot as plt p = np.linspace(0.01, 1, 1000) # 0일 때 로그는 발산하므로 0.01부터 시작! y = -np.log2(p) plt.plot(p, y) plt.xlabel('p', size = 14) plt.ylabel('x', size = 14) plt.grid() plt.show() [Out] 위 그래프와 마찬가지로 정보량은 확률이 작을수록 커지는 것을 확인할 수 있다. [In] # 베르누이 분포의 엔트로피 %matplotlib inline import numpy a..
[Python] 우도(가능도)와 대수우도 구현 예제 1(우도가 작은 케이스) 다음 코드는 정규분포를 이용해 우도와 대수우도를 구한다. [In] # 우도가 작은 케이스 %matplotlib inline import numpy as np import matplotlib.pyplot as plt x_data = np.array([2.4, 1.2, 3.5, 2.1, 4.7]) # 넣어볼 데이터(특성 벡터) y_data = np.zeros(5) mu = 0 # 평균 sigma = 1 # 표준편차 # 정규분포의 확률밀도함수 def pdf(x, mu, sigma): return 1/(sigma*np.sqrt(2*np.pi))*np.exp(-(x - mu)**2 / (2*sigma**2)) x_pdf = np.linspace(-5, 5, 1000) y_pdf = ..
[Python] 조건부 확률과 베이즈 정리
[Python] 상관계수 구현 python에서 상관계수는 numpy의 corrcoef() 함수를 이용해 구현할 수 있다. 위의 ex1과 ex2를 각각 코드를 통해 구현해보았다. 예제 1 [In] # 상관계수 %matplotlib inline import numpy as np import matplotlib.pyplot as plt x = np.array([50, 70, 40, 60, 80]) # 수학 점수 y = np.array([60, 80, 50, 50, 70]) # 영어 점수 # 방법 1 : 직접 구하기(공분산, 표준편차 이용) x_avg = np.average(x) y_avg = np.average(y) x_std = np.std(x) y_std = np.std(y) cov_xy = np.average((x - x_avg) *..