본문 바로가기

전체 글

(57)
Probability 확률론 machine learning에서 loss function은 데이터를 통계적으로 해석, 학습 유도 회귀 분석에서 loss function으로 사용되는 L2_norm은 예측오차의 분산을 최소화 분류 문제에서 loss function으로 사용되는 cross-entropy는 모델 예측의 불확실성 최소화 확률변수 - 확률분포에 따라 구분 (데이터공간에 의해 결정되는 것이 아님) 이산확률변수 확률변수가 가질 수 있는 모든 경우의 수를 고려하여 더함 연속확률변수 확률변수의 밀도(density)위에서의 적분 결합분포(joint distribution) 주변확률분포 - x의 분포, (label)에 대한 정보 제공하지 않음 조건부확률분포 - y에 따른 x의 분포 기댓값(expectation) > 평균 데이터를 대..
Neural Network Softmax 한 벡터가 어떤 class에 속할지 확률 예측 Activation Function nonlinear function 활성 함수 + 선형모델 = 신경망 forward propagation(순전파) output activation func(z) z = weight * data + bias input data layer가 많을수록 필요한 뉴런(node)의 수가 줄어 효율적인 학습 가능 그러나, 최적화가 어려워질 수 있음 backward propagation(역전파) 각 노드의 tensor 값을 저장해야 미분이 가능하므로 순전파보다 느림(위 식에서 x,y를 모두 기억해야 함)
String String sequential data type 1 char = 1 byte Raw string raw_string = "Python \n Java \n C" print(raw_string) Python Java C raw_string = r"Python \n Java \n C" print(raw_string) Python \n Java \n C Call by Value vs Call by Reference Call by Object Reference 객체의 주소가 함수로 전달되는 방식 새로운 객체를 만들 경우 영향을 주지 않음 def test(t): print(t) # 10 t = 20 # 새로운 객체가 생성, x != t print(t) # 20 x = 10 test(x) print(x) # 10T..
Conditionals and loops x is y : 메모리 주소 비교 x == y : 값만 비교 python에서 -5 ~ 256은 정적메모리 공간에 저장한 후 해당 값을 가지는 변수를 일괄적으로 할당 x = -5, y = -5 x is y : True x = -6, y = -6 x is y : Falseboolean_list = [True, False, True] all(boolean_list) : False any(boolean_list) : True
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..