본문 바로가기

부스트캠프 AI Tech

(53)
Gradient Descent Differentiation import sympy as sym from sympy.abc import x sym.diff(sym.poly(x**2 + 2*x + 3), x) 미분값을 더하면 함숫값 증가 미분값을 빼면 함숫값 감소 Gradient Descent 미분값을 빼서 함수의 극솟값을 구함 Input : gradient, init, lr, eps Output: var var = init grad = gradient(var) # gradient: 기울기 계산 while(abs(grad) > eps): var = var - lr * grad grad = gradient(var) Gradient Vector 다변수 함수를 각 변수 별로 편미분한 벡터 var = init grad = gradient(var..
Function and Formatting Function def 함수 이름(parameter #1, ... ): 수행문 #1(statement) 수행문 #2(statement) return parameter, argument Formatting %-format : "%datatype"%(variable) print("I eat %d apples. " % 3) str.format() : "{datatype}".format(argument) print("My name is {0} and {1} years old.".format(name,age)) fstring : f"{var name}" print(f"hello, {name}. You are {age}.")
Variable & Memory Variable 각 변수는 메모리 주소를 가지고, 변수의 값은 그 메모리 주소에 할당 폰노이만 아키텍쳐 알파벳, 숫자, 언더스코어(_)로 선언 가능 대소문자 구분, 예약어(for, if, else 등) 사용 불가 변수 선언 규칙 Primitive Data Type integer, float, string, boolean Dynamic Typing 코드 실행시점(runtime)에 데이터의 type을 결정 List indexing [start:end:step] deepcopy
Matrix Matrix vector를 원소로 가지는 2차원 배열 numpy에서는 row vector를 기본 단위로 함 하나의 vector는 공간에서의 한 점 Matrix는 이 점들의 모임 행렬 간의 덧셈, 뺄셈, 성분곱(행렬 끼리 곱), 스칼라곱(행렬에 상수 배)은 vector와 같음 벡터 공간에서 사용되는 연산자(operator) 행렬곱을 통해 벡터를 다른 차원으로 보낼 수 있다 Transpose Matrix 한 행렬의 row, column의 인덱스를 뒤집은 행렬 Matrix Multiplication (행렬곱) 행렬곱을 통해 vector를 다른 차원으로 변환 가능 X의 #col과 Y의 #row가 같아야 함 X의 row vector와 Y의 col vector의 내적 X @ Y = 행렬 X, 행렬 Y의 행렬곱 np..
Vector Vector N차원 공간에서의 한 점 숫자를 원소로 가지는 list로 표현 가능 벡터에 스칼라곱을 하면 길이만 변화 음수를 곱하면 반대 방향 서로 같은 차원의 벡터만 덧셈, 뺄셈, 곱셈 가능 Hadamard product (element-wise product) - 성분곱 Norm N차원에서 원점에서 하나의 벡터까지의 거리 L1 Norm 각 성분의 절댓값을 모두 더함 def L1_norm(x): x_norm = np.abs(x) x_norm = np.sum(x_norm) return x_norm L2 Norm 유클리드 거리를 구함 (피타고라스의 정리) def L2_norm(x): # np.linalg.norm으로 구현 가능 x_norm = x*x x_norm = np.sum(x_norm) x_norm =..