728x90
반응형
책에 나오는 그림 및 그래프 그리기 코드 :
https://github.com/metamath1/noviceml
다변수 함수와 벡터함수 : 입력이 여러 개, 출력이 여러 개인 함수
입력과 출력에 따른 함수의 분류
- 다음과 같은 순서로 알아보기
- 입력이 여러 개인 함수의 정의와 그래프의 의미
- 출력이 여러 개인 함수의 정의와 그래프의 의미
- 여러 함수가 합성된 합성함수
- 여러 가지 함수를 합성하여 만든 초간단 분류기 실습
스칼라와 벡터
- 스칼라 : 크기만을 나타내는 수학도구
- 온도, 재산 등의 크기를 표시할 때 쓰는 도구
- 숫자 하나로 표현되는 양 (scale과 비슷한 의미)
- 벡터 : 크기와 방향을 모두 가지는 수학 도구
- ex) 속도는 방향과 크기를 모두 가지므로 벡터
- 스칼라와 벡터는 x와 x 로 표시
- x에 들어있는 각 숫자를 벡터의 요소, 요소의 개수를 벡터의 차원이라고 표시
- ex) v = (x, y, z)는 3차원벡터, x,y,z는 벡터가 가지는 요소
- 벡터를 표시할때는 숫자를 세로로 나열(열 벡터)할 수도 있고, 가로로 나열(행 벡터)할 수도 있음 (기본은 열벡터)
일변수 스칼라함수
- 일변수 스칼라함수 : 2장에서처럼 숫자 하나가 입력되고 숫자 하나가 출력되는 함수들
- y = f(x)
- 입력 x와 출력y가 모두 스칼라
- 다항식 형태라고 해도 입력과 출력이 여러 개가 될 수 있음
일변수 벡터함수
- r(t) = (f1(t), f2(t), ... , fn(t))^T
- n차원 벡터를 결과로 돌려주는 벡터함수, 입력은 숫자 t 하나밖에 없음
- f: R -> R^n (R은 실수 전체 집합)
- 함수의 형태는 다항함수, 지수함수, 로그함수 등 어떤 형태도 가능
- 숫자 t를 3차원의 어떤 점으로 바꿔 줌
- 일변수 벡터함수는 시간(t)에 따라 공간(3차원 출력)을 이동하는 대상을 모델링할 수 있음
다변수 스칼라함수
- 목적함수 (손실함수, 비용함수) : 함숫값을 줄이면 어떤 목적이 달성되는 함수
- 대부분 머신러닝 알고리즘은 목적함수의 가장 작은 위치를 찾아내는 과정 거침
- 목적함수들이 다변수 스칼라함수
- 입력이 여러개이고 출력이 하나인 함수
- y = f(x)
- 구체적인 예) f(x,y) = x + y
- 복잡한 모양의 예) f(x1, x2) = 50(x2 - x1^2)^2 + (2 - x1)^2
- 우변 정의대로 식을 계산하면 숫자 하나가 결정됨
- f: R^2 -> R (각 입력변수 차원의 제곱 차원이 정의역)
- 벡터형식으로 쓸수 있음 = 벡터변수 스칼라 함수라고 이야기하기도 함
그래프 그리기
그리드 생성
- np.meshgird()는 2차원 평면에 그물 같은 그리드 좌표 생성
- x1, x2의 1차원 어레이를 통해 각 좌표가 교차되는 점의 좌표를 X1, X2에 저장
점을 빼곡히 찍어 연속된 곡면 만들기
한쪽이 숫자로 고정되면?
- 함수식의 한쪽이 숫자로 고정되어 있는 경우
- 50(x2 - x1^2)^2 + (2 - x1)^2 = 200
- 정의역과 공역의 관계가 특정 경우에 한정되게 됨
- 특정 값을 대입해야 등호가 성립하기 때문에 함수라고 할 수 없음
- 독립과 종속 관계가 명시적으로 드러나 있지 않고, 두 변수가 한 식에 함께 나타나 있어 관계가 명시적으로 드러나지 않음
- 이런 경우 음함수(implicit function)라는 용어로 지칭
- 위 관계를 만족시키는 (x1, x2) 순서쌍들은 방정식을 만족시키는 해집합이라고 할 수 있음
해집합으로 그래프 그리기
- 사용할 등고선 생성
- 이변수 함수에서 함숫값을 제한하면 곡면이 곡선으로 바뀜
함숫값 30, 200, 600을 만족하는 (x1, x2)들을 평면에 그리기
- 위 그림은 함숫값 30, 200, 600을 만족하는 (x1, x2)들을 평면에 그린 그림
- 2차원 평면에서 정의된 함수를 2차원 평면에 그린 것
- 경사도벡터의 방향이 어느방향인지 등고선 그래프로 알 수 있음
변수가 세 개라면
- 그림을 그릴 수 없음
- 실수 세 개로 구성된 정의역은 3차원 공간 전체가 되기 때문
- 한쪽을 숫자로 고정하게 되면
- 함숫값을 가지는 입력 점들이 3차원 공간에 곡면으로 그려지게 됨
- 등고선그래프와 같은 현상이 3차원 공간에 나타남
- 변수가 네 개 이상이면 아예 그림을 그릴 수 없음
다변수 벡터함수
- 입력도 여러개, 출력도 여러개인 함수
- F(x) = (f1(x), f2(x), ... , fn(x))^T, x R^m
- 입력 m개가 출력 n개로 변환되는 벡터함수
- 입력 x는 숫자 m개가 모인 벡터
- 각 성분 함수 fi(x)는 f:R^m -> R인 다변수 스칼라함수
- 예시(p.63) 함수의 그림 그리기
- 3차원 공간에 점 900개가 곡면 이루고 있음
- 입력평면 uv는 이 그래프에 나타나지 않음
그래프 방식 표현
- 그래프 : 동그라미를 선으로 연결한 그림
- 노드 : 동그라미
- 엣지 : 출력에 관여하는 입력을 연결한 점선과 실선
- 연결선이 모이는 부분에서는 덧셈이 일어난다고 정의
합성함수
- 함수의 합성 : 어떤 함수의 출력을 다른 벡터함수의 입력으로 사용하는 것으로 연결
- 그래프로 알아보기 (입력 x, 출력 y)
- 좌상단그래프는 f(x)그래프
- 우상단그래프는 g(y)그래프
- 좌상단 그래프의 세로축범위가 우상단 그래프의 가로축 범위와 일치
- 좌상단 그래프의 공역이 우상단 그래프의 정의역이 된 것 (최종 출력은 z)
- 좌하단그래프는 x와 z의 함수 (함성함수)
- 우하단그래프는 f(x)와 g(f(x)를 함께 그린 것
자주 만나는 특별한 함수 : 소프트맥스 함수
- 우변의 정의 : z를 입력 받아 i번째 요소 계산
- 함수의 출력도 벡터
- 즉, 소프트맥스 함수는 다변수 벡터함수
- 소프트맥스 함수는 출력한 숫자가 동일한 분모에 대해서 각 요소가 차지하는 비율
- 모두 더하면 1이됨
- 어떤 숫자가 커지면 다른 숫자가 작아짐
- 함수의 출력은 확률로 해석가능
- 여러 항목에 대한 확률 출력가능
- 가장 큰 확률을 가지는 항목을 정답으로 출력함
여러가지 함수를 활용한 초간단 분류기
728x90
'Minding's Reading > 머신러닝 딥러닝에 필요한 기초 수학 with 파이썬' 카테고리의 다른 글
[머신러닝 딥러닝에 필요한 기초수학 with 파이썬] CH01. 머신러닝과 선형회귀 (0) | 2021.07.20 |
---|