-
Notifications
You must be signed in to change notification settings - Fork 2
Calculus Basic
jaeaehkim edited this page Jun 29, 2022
·
3 revisions
- 함수의 정의 : 입력 값(변수)과 출력 값(변수)의 '관계(relationship)' : map, mapping, dictionary
- 정의역(Domain) : 입력 변수가 가질 수 있는 값의 집합
- 공역(Co-Domain) : 출력 변수가 가질 수 있는 값의 집합 (치역 : Range)
- 변수 : 어떤 숫자를 대표하는 기호
-
- 특정 데이터의 갯수를 세는 경우
-
- 존재 조건 : 일대일 대응, 가역성, 전단사
- ReLU(Rectified Linear Unit)
-
-
- 지수함수를 변형한 함수. 시그모이드 함수 종류의 하나이고 로지스틱 함수가 가장 많이 쓰임
-
-
- 자주 쓰이는 로그함수 성질
- 로그함수는 곱하기를 더하기로 변환함
- 어떤 함수에 로그를 적용해도 최고,최저가 바뀌지 않음
- 0 ~ 1 사이의 작은 값을 확대시켜 줌
- 자주 쓰이는 로그함수 성질
-
- 입력변수 x,y를 받아 z를 출력하는 구조
- 2차원 함수는 3차원의 surface plot으로 그릴 수 있음
-
- Example
- Example
- 입력 변수 뿐만 아니라 출력 변수도 여러 개인 경우
- Example
- 소프트맥스(Softmax)
-
- 모든 출력 원소는 0 ~ 1 사잇값을 갖는다
- 모든 출력 원소의 합은 1이다
- 입력 원소의 크기 순서와 출력 원소의 크기 순서가 같다
- 다변수 입력을 확률처럼 보이게 출력한다
-
- 소프트맥스(Softmax)
- 데이터 분석의 경우 "예측 오차가 가장 작은 최적의 예측 모형"을 구하는 것이 목표
- 반복적으로 예측 오차를 계산하고 예측 모형의 함수의 계수(모수)를 바꾸는 것
- 예측 오차를 정량화 하는 방법으로 성능/손실/비용/오차(performance/loss/cost/error function)을 사용하고 이름은 다르지만 모두 최적화의 대상이 되는 목표 함수(objective function)이란 측면에선 동일
- 목적함수를 가장 크게/작게 할 때의 함수의 모수를 구하는 것이 최적화(optimizaition)
- 위의 작업을 하기 위해선 입력 값에 따른 출력 값의 변화를 계속 관찰해야하는데 이때 미분(differentiation)을 사용하게 됨
-
- 수치적 최적화 : 가장 적은 횟수로 여러 x값을 시도하여 최적의 값을 찾는 방법
- 위 과정에서 기울기란 정보를 통해서 최대한 적은 횟수를 시도하게 함
- 수치적 최적화 : 가장 적은 횟수로 여러 x값을 시도하여 최적의 값을 찾는 방법
-
- 미분 : 어떤 함수로부터 그 함수 기울기를 출력하는 새로운 함수를 만들어 내는 작업 (도함수라고 부름)
- 수렴(converge), 극한(limit)의 개념을 활용해 정의 함
- 미분 : 어떤 함수로부터 그 함수 기울기를 출력하는 새로운 함수를 만들어 내는 작업 (도함수라고 부름)
-
- 수치 미분 : 위에서 말한 미분은 수렴,극한이라는 다소 추상적인 수학적 개념이지만 수치적으로 표현할 땐 매우 작은 값이 dx를 통해 미분의 출력 값과 유사한 출력 값을 수치 미분을 통해서 만들어 낸다.
- 둘 이상의 독립변수를 가지는 경우, 하나의 변수에 대해서만 미분하는 방식. 관습적으로 미분 기호를 다르게 써줌.
- case 1
- 변수 x의 값에 따른 z 값의 변화
- 변수 x의 값에 따른 z 값의 변화
- case 2
- 변수 x1의 값에 따른 z 값의 변화
- 변수 x1의 값에 따른 z 값의 변화
- x 미분 후 x 미분
- y 미분 후 y 미분
- x 미분 후 y 미분
- y 미분 후 x 미분
- 슈와르츠 정리(Schwarz’s theorem)
- (함수의 연속 및 미분가능 전제) 미분 순서 상관 없이 같은 함수가 된다. (x->y == y->x)
- Motivation
- 함수의 기울기를 통한 함수 근사
- Mathematical Expression
- n=1 case
- general case
-
- a=0일때 Maclaurin series라 부름
-
- 변수가 2개인 경우
- 변수가 2개인 경우
-
- n=1 case
- symbolic 연산을 지원하는 패키지, 사람이 손으로 계산하는 방식으로 연산함
- tensorflow, pytorch에서도 심볼릭 연산 지원
import sympy
sympy.init_printing(use_latex='mathjax')
x = sympy.symbols('x')
# ex1
f = x * sympy.exp(x)
sympy.diff(f)
print(f)
# ex2
sympy.simplify(sympy.diff(f))
print(f)
# ex3
x, y = sympy.symbols('x y')
f = x ** 2 + 4 * x * y + 4 * y ** 2
print(f)
# ex4
x, y = sympy.symbols('x y')
f = x ** 2 + 4 * x * y + 4 * y ** 2
print(f)
# ex5
x, mu, sigma = sympy.symbols('x mu sigma')
f = sympy.exp((x - mu) ** 2 / sigma ** 2)
print(f)
- 부정적분 = 미분의 반대 (anti-derivative) , 미분 되기 전의 원래의 함수를 찾는 과정
- 독립변수 x가 어떤 구간 [a,b] 사이에 있을 때 그 구간에서 f(x)의 값과 x축의 면적을 구하는 행위 (integration)
- 부정적분 F(x)를 활용하여 미분과의 연관성을 만들어 내는 미적분학의 기본 정리(Fundamental Theorem of Calculus)
- 계산 방법
- 미적분학의 기본 정리를 사용하여 푸는 방법
- 원래 함수의 면적 부분을 잘게 쪼개어 근사하게 구하는 수치적분 방법