부스트캠프 Ai tech
-
3일 - 심화과제부스트캠프 Ai tech/1주차 2022. 1. 19. 19:41
심화과제에서 많은 고민을 했던 부분을 위주로 작성 처음에는 왜 선형회귀에 경사하강법이 나오는지 궁금했다. 선형회귀는 일차함수고, 경사하강법은 이차함수에 사용한다고 생각했던터라 이해가 안가는 부분이 많았다. 유투브와 블로그를 찾아다니면서 공부하던중에 선형회귀에서 쓰는 손실함수를 활용하는데 있어서 경사하강법을 쓰는 것을 알게 되었다. 선형회귀는 output을 통해 일차함수를 얻어내는데 이 과정은 다음과 같다. train_x = (np.random.rand(1000) - 0.5) * 10 train_y = np.zeros_like(train_x) def func(val): fun = sym.poly(7*x + 2) return fun.subs(x, val) for i in range(1000): train_y..
-
2일 - 경사하강법, 딥러닝 학습방법, 확률론부스트캠프 Ai tech/1주차 2022. 1. 18. 13:08
import sympy as sym from sympy.ab import x sym.diff(sym.poly(x**2 + 2*x + 3), x) -> Poly(2*x + 2, x, domain='ZZ') 미분하는 코드 한 점에서 접선의 기울기를 알게 되면 어느 방향으로 움직여야 함수값이 증가하는지 감소하는지 알 수 있다. 미분값을 더하게 되면 값이 증가하고, 미분값을 빼게 되면 값이 감소한다. -> 경사상승법/경사하강법 극값에 도달하면 움직임을 멈춘다. 그레디언트 벡터 = 각 변수 별로 편미분을 계산한 벡터 벡터는 절대값 대신 노름(norm)을 계산해서 종료조건을 설정한다. for t in range(T): error = y - X @ beta grad = - transpose(X) @ error bet..
-
1일 - 벡터와 행렬부스트캠프 Ai tech/1주차 2022. 1. 17. 13:30
열벡터(세로), 행벡터(가로) 벡터에 숫자를 곱하게 되면 스칼라 값만 변한다. ( 방향 X , 크기 O ) 같은 모양의 벡터일 때 덧셈 and 뺄셈 and 성분곱(Hadamard product) 가능 x = np.array([1, 2, 3]) y = np.array([2, 3, 4]) x + y x - y x * y / 성분곱 벡터의 뺄셈 -> 덧셈으로 바꿔서 생각 벡터의 노름(norm) 원점에서부터의 거리 L_1 노름 = 변화량의 절댓값의 합 L_2 노름 = 피타고라스 정의를 이용한 유클리드 거리 머신러닝에서 둘 다 사용 행렬(matrix) 벡터를 원소로 가지는 2차원 배열, 공간에서 여러 점들을 나타냄 n X m 행렬 => n개의 행 m개의 열 X_ij = i번째 행 j번째 열 전치행렬 (T 기호를..