2021, Summer (2021년 하계 도전학기)
PBL Report (개인성찰 노트)
*Name (이름) : 박정현, 김수민, Dong Na
*Student ID (아이디)
: 2018, 2020, 2017
*e-mail(이-메일): *@naver.com , @naver.com
검은색 글씨 : MidPBL
초록색 글씨 : FinalPBL
Ch 1장. Participation [참여평가] (10점)
담당교수 또는 다른 학생들이 QnA에
업로드한 글에 자신의 Comment or Answer를 10개
이상 주시오. 4장에 모두 첨부하였습니다.
(1)
State more than 10
Math Definitions and concepts what you learned in Part 1, 2, 3, ...
4주차까지, ‘행렬과 데이터분석’의 파트 1, ‘다변수 미적분학과 최적화’를 다루는 파트 2를 살펴보았습니 다. 각
파트에서 핵심적이었던 개념과 방법론에 대해 수업시간에 배운 바를 요약하고, 그
외에 추가적 으로 개념학습한 내용을 추가하여 설명하겠습니다.
우선, 파트 1의 경우 선형대수학의 기본적이고
핵심적인 개념과 이를 바탕으로 하는 방법론들에 대해 다룹니다. 파트 1의 첫번째 핵심은 벡터공간의
생성입니다. 벡터(vector)는 크기의 수치만을 내포하는 물리량인
스칼라(scalar)와 달리, 크기뿐 아니라 방향의 정보를 모두 담고 있는 물리량입니다. 벡터에 대해 내적이나 외적, 일차결합
등 여러 연산을 가할 수 있습니다. 내적은 유사도를 계산할 때, 외적은 3차원에서 수직인 축을 찾을 때 주로 이용하는
연산입니다.

특히 n개의 벡터를 선형결합하여
영벡터가 되게 하는 스칼라 집합이 모두 0인 경우만 존재할 때
해당 벡터 집합은 선형독립(linearly independent)이라고 합니다. 기하학적 의미를 생각해 보면, n개 벡터의 집합 V 중 어떤 한 원소에 대해서도 다른 벡터들의 모든 선형결합을 고려하더라도 그 특정 벡터와 같 은 방향을 만들 수 없음, 다시 말해 n개 벡터의 모든 선형결합을 고려하더라도 영벡터를 만들 수 없음
을 의미합니다. 다음의 그림에서 두 벡터 v1과 v2는 선형독립입니다.
반대로, 선형종속(일차
종속)이란, n개의 벡터 집합 V의 모든 선형 결합을 고려할 때, 영벡터가 되게 하는 계수 중 적어도 0이 아닌 한 계수가 존재하는 경우를 말합니다. 다시
말해, 이는 기하학적으로
특 정한 한 벡터 𝑣𝑖 에 대해 다른 벡터들의 선형결합으로 𝑣𝑖 를 표현할 수 있음, 즉 생성할 수 있음을 의미 합니다. 선형종속을 기하학적으로
살펴보면 다음과 같습니다.

한편, 벡터집합의
모든 선형결합을 모아 벡터공간을 만들 수도 있습니다. 벡터공간(Vector
Space)은 다항식이나 행렬에도 확장하여 적용할 수 있는 개념으로, 덧셈과 스칼라곱에
대해 닫혀 있고, 벡터공간 의 8가지 성질을
만족하는 임의의 집합 V를 벡터공간이라고 합니다. 그리고
벡터공간 V의 부분집합이 면서 동시에 그 자체로 벡터공간이 되는 경우 이를 부분공간(Subspace)이라고 합니다. 앞서 선형독립 과 선형종속의 개념을
언급할 때, 벡터 집합 U의 모든 선형결합을 고려하였는데, 이 모든 선형결합을 모아 생성된 공간 역시 벡터공간으로, 이는 집합 U에 의해 생성된 부분공간입니다. 공간을 해당 벡터 집합 V에 의해 생성된 부분공간이라 하고, 모든 선형결합을 모으는 것을 ‘생성한다(span)’고 합니다.
한편, 서로 선형독립인
두 벡터 u1, u2에 대해 u1의 u2로의 정사영(projection
of u1 onto u2:𝑝𝑟𝑜𝑗𝑢2 𝑢1)-혹은 그 반대 역시-을 정의할 수 있는데, 이는 벡터 u2로 u1을 가장 잘 설명하는 추정량 . n차원 벡터의 Least
squared estimator 𝑦̂ = 𝑋(𝑋𝑇𝑋)−1𝑋𝑇𝑌 가 됩니다. (이는 Gauss-Markov theorem 에
의해 선형추정량 중 편향이 없고 분산이 가장 작은 추정량임이 증명되었고, 이를 BLUE(Best Linear
Unbiased Estimator) 라고 일컫는다.)
파트 1의 두 번째 핵심은 벡터공간의 차원입니다. 임의의 벡터 집합에 의해 생성된 벡터공간 V는 기 저(basis)를 갖는데, 기저란 벡터공간을 형성하는 (1) 서로 일차독립이고, (2) V를 span하는 벡터들의 집합으로 벡터공간의 차원을 결정합니다.
이는 귀류법을 통해 증명할 수 있습니다. 이때, 벡터공간의 차 원(dimension)은 기저집합의 원소의 개수(cardinality)가 됩니다. 벡터들의 집합은 행렬로 확장할 수
있는데, 이때 행렬 A의 행벡터들로 생성(span)된 벡터공간을 행공간(row space), 열벡터들로 생성 (span)된 벡터공간을 열공간(column space)라고 하고 이 공간의 차원을 행렬의 계수(rank)로 일컫습 니다.
이러한 선형대수학의
핵심 개념들과 더불어 이를 바탕으로 하는 대각화, 특잇값 분해 등 행렬연산을 용이하게 하는 여러 방법론들을
배웠습니다. 이와 달리, 파트 2에서는 미적분학의 기초 개념들과 이를
응용한 수치적 최적화 방법들에 대해 다룹니다. 먼저, 가장 핵심이 되는 개념은 함수의 극한(limit of a function)입니다. 흔히 극한은 엡실론-델타 개념에 의해 정의되는데, 임의의 양수 𝜀에 대하여 x가 상 수 a로 𝛿만큼 가까이 근접할 때 f(x)와 어떤 상수 b 간의 거리가 𝜀 보다 작아지게 하는 양수 𝛿가 존 재하면 함수 f는 b에 수렴한다고 하며, 이때 b를 x가 a에 접근할 때의 극한(limit)이라고 합니다. 극한
![]()
값의 정의는 미분가능성의 정의를 가능케 합니다. 함수 f가 a를 포함하는 적당한 근방에서 정의되어 있 고, 극한값이 존재하면 이 극한값을 f의 a에서의 미분계수라 하고 이를 f’(a)로 나타냅니다. 물론, 미분가능성에 대해 엡실론-델타
개념을 도입하여 더 엄밀히 정의할 수도 있습니다.
이는 후에 고차원의 다변수함수로
확장되어 특정 변수 하나에 대해서만 미분하는 편미분의 개념을 도 입하여 다음과 같이 다변수함수 f의 모든 변수에
대해 편미분한 벡터인 gradient f를 정의할 수 있습
![]()
니다. gradient f는 특정한 한 점에서 함수 f가 가장 가파르게 움직이는 방향벡터입니다. 이러한 아이디 어를
극솟값/ 극대값을 찾는 문제에 적용한 것이 통계적 최적화와 최근 쓰이는 많은 예측 알고리즘의 기본이 되는 경사하강법(gradient descent method)입니다. 또, 그래디언트를 이용하여 다변수 함수 를 근사하는 테일러 정리에서도 응용됩니다.
한편, 함수 f의 이계도함수를 모아 이계도함수 행렬인 Hessian matrix를 구성할 수도 있는데, 이는 도함수를 이용하여 함수 f의 근을 찾는 수치적 방법인 newton method와 결합하여 함수의 극대점과 극소점을 찾는 최적화 문제에 응용되어 많이 쓰입니다. 대표적인 예로, quasi-newton method가 있습 니다.
파트 2의 또다른 핵심 개념은 중적분입니다. 적분은 미분의 반대 개념으로서, 미적분학의 기본정리 (fundamental theorem
of calculus)에 의해 적분값이 다음과 같이 정의됩니다. 이때, F(x)는 f(x)의 임의의 한 부정적분이고
이 적분값은 기하학적으로 구분구적법에 의해 함수 f가 x = a와 x = b, x축으로 둘러싸인 넓이를 의미합니다.
![]()
이 개념을 역시 다변수함수로
확장하면 이중적분, 삼중적분 등으로 확장할 수 있는데, 2차원상에서 적 분계산이 넓이를 의미했듯 이중적분은 부피를, 삼중적분은
밀도를 의미합니다. 나아가, 기하학적으로 시 각화할 수는 없지만 이를 n개의 변수에 대한 중적분으로 일반화할 수 있습니다.
한편, 적분을 이용해 변수변환을
시행할 수도 있는데, 전단사함수(역함수가 존재하는 함수) u에 대해
Y
= u(X) 라고 할 때 𝑢−1 를 y로
미분한 값의 절댓값을 곱해 주면 변수변환으로 인해 일어난 적분영역 의 넓이변화를 보정해 주게 되므로 변수변환을 시행할 수 있습니다. 이를 n차원 함수
𝑢(𝑥1,
𝑥2, 𝑥3,
… 𝑥𝑛) = (𝑢1(𝑥1,
𝑥2, 𝑥3,
… 𝑥𝑛), 𝑢2(𝑥1,
𝑥2, 𝑥3,
… 𝑥𝑛), … , 𝑢𝑛(𝑥1,
𝑥2, 𝑥3,
… 𝑥𝑛))
에 대해서도 확장 가능한데, 이 경우 각각의 𝑢𝑖−1 를 x1,x2,…xn 에 대해 순차적으로 미분하여 자코비 안 행렬을
구할 수 있고, 행렬의 각 열벡터가 구성하는 공간의 넓이가 곧 행렬식(determinant)의 절 댓값이므로 자코비안 행렬의 행렬식의 절댓값을 구하여 적분구간의 area를 보정해 줄 수 있게 됩니다. 이는 치환적분의 아이디어와도 일맥상통합니다.
l
l 순열과 조합, 확률
한편, 5주차부터는 파트 3의 확률통계와 빅데이터에 대해 다루었습니다. 우선, 순열과 조합, 그리고 확률에 대한 개념을 정의한 바 있습니다. 서로 다른 n개 중 k개를
뽑는 상황을 생각했을 때, 순서를 고려한 경우의 수를 구하는 것이 순열, 순서를 고려하지 않고 경우의 수를 구하는 것이 조합입니다. 이렇듯
경우의 수를 활용하여 어떤 사건이 일어날 확률을 구할 수 있는데, 현실에서 발생하는 사건에 대해 보다
일반적으로 확률을 정의하기 위해 수학적 확률과 확률의 공리가 정의됩니다. 대수의 법칙은 사건 A가 일어날 확률을 정의하기 위해 극한의 개념을 도입하며, 이때 시행
횟수 n을 무한히 늘리면 수학적 확률에 수렴하므로 이를 P(A)로
정의하도록 합니다. 이처럼, 확률은 상대도수를 추상화한 것이기
때문에 이를 논리적으로 체계화할 필요성에 의해 러시아의 수학자 콜모고로프(Kolmogorov)에 의해
고안된 것이 확률의 공리(Axiom of probability) 입니다.




한편, 조건부확률은 표본공간을 축소하여
어떤 사건 A가 일어났다는 조건 하에서 사건 B가 일어날
확률을 수치화하고, 다음과 같이 구할 수 있습니다.

이러한 조건부확률을 이용하여 사전확률과 가능도의 곱을 통해 사후확률을 구하는 베이즈 정리에 대해서도 학습한 바 있습니다. 베이즈 정리의 공식은 다음과 같습니다.


l 확률변수와 확률분포
한편, 사건에 대해서 이를 수치로 할당해주기 위해 확률변수가 필요하게 되는데, 확률변수 X가 가질 수 있는 값이 셀 수 있는 값이면 이를 이산확률변수, 셀 수 없는 값이면 연속확률변수라고 합니다. 확률변수가 가질 수 있는 모든 값에 대한 확률의 분포가 확률분포함수입니다. 이산확률변수의 확률분포는 확률질량함수(pmf)라고 하고 연속확률변수의
확률분포는 확률밀도함수(pdf)라고 하며, 다음 성질을 만족합니다. 또한, 아래의 식과 같이 기댓값과 분산을 구할 수도 있습니다.


이산확률분포의 대표적인 종류로 베르누이분포와 이를 확장한 이항분포, 포아송분포가 있으며 다음과
같은 확률질량함수를 갖습니다. 또한, 각 분포의 기댓값과
분산은 다음과 같습니다.




한편, 연속확률분포의 종류로는 대표적으로 균등분포, 정규분포가
있으며 기댓값과 분산은 다음과 같습니다.


한편, 표본평균에 대해 핵심적인 정리 중
하나가 중심극한정리인데, 중심극한정리(CLT)란 모평균이
, 모분산이
인 분포를 따르는 랜덤표본 X1~Xn에
대해 n의 크기가 커질수록 표본평균의 분포는 모집단의 분포와 상관없이 정규분포를 따르게 된다는 이론입니다.

한편, n개의 확률변수에 대해 그 확률변수
간 관계를 고려해주기 위해 결합확률분포를 고려할 수도 있습니다. 이때,
확률변수 X와 Y에 대하여 두 변수가 서로 어떤
관계를 가지는지 표현하는 것이 공분산이고, 공분산이 단위에 영향을 받는다는 문제점을 해결한 것이 상관계수입니다. 또한, 이를 n개 확률변수에
대해 확장하여 관계를 나타내는 공분산행렬을 다음과 같이 고려할 수도 있습니다.



l
파트 4는 본론으로, 그간 배운 방법론을 실제 데이터에 접목하여 활용해보게
됩니다. 특히, 차원 축소 방법론 중 하나인 PCA에 대해 주로 다룹니다. PCA는 데이터의 공분산행렬을 고유값분해하여
제이터의 분산을 최대화시키는 직교인 축을 찾습니다. 이는 공분산행렬을
SVD함으로써 얻어질 수도 있습니다. PCA의 개념과 최적화하기 위한 step은 다음과 같습니다.

첫 번째로, 분산이 가장 최대화되는 축을 찾습니다. 이것의
최적화는 라그랑주 승수법으로 풀 수 있습니다.

두 번째로, 첫 번째 찾은 주성분과 수직이면서 분산을 최대화하는 축을 찾습니다. 역시 라그랑주 승수법이 적용됩니다.

이를 반복하여 분산이 최대가 되도록 하되 앞의 주성분과는 수직이도록 하는 k번째 주성분을 찾습니다. 이것이 PCA최적화 과정이며 이는
SVD를 통해서 일반화될 수 있습니다.
PCA가 중요한 이유는 변수가 매우 많고, 다중공선성이 높은 데이터에 대해서 분산이 최대화되는 방향, 즉 공분산행렬이 주는 정보를
그대로 간직하여 분산이 큰 일부 축만을 선택하여 데이터의 차원을 축소할 수 있기 때문입니다. 데이터의
행과 열이 모두 커지는 빅데이터 시대에서, 이러한 차원 축소 방법은 매우 큰 의의를 갖는다고 할 수
있습니다.
l 신경망
신경망은 딥러닝 계열 모델들의 기반이 됩니다. 이는 퍼셉트론이라고도 하는데 신경계의 기본 단위인 뉴런을 모형화한 것으로, 입력된 x값에 가중치를 곱하여 결과값을 다음 레이어에 전달합니다. 이때, 원래의 입력값 X를 입력하는 층을 입력층, 최종 예측값을 도출하는 층을 출력층이라고 하고 입력층과 출력층 사이에 숨겨진 층을 은닉층이라고 합니다. 하나의 은닉층을 거치는 것은 결국 가중치행렬 하나를 곱하는 것이고, 은닉층이
늘어날수록 곱해지는 행렬도 늘어납니다. 이러한 신경망 계열의 모델학습,
즉 딥러닝에서 우리의 관심사는 이러한 가중치행렬의 최적화입니다. 그런데 이미지 분석이나
음성 분석 등 좀더 복잡한 현실의 문제를 해결하기 위해 은닉층을 더 많이 쌓게 될 경우 그만큼 곱해지는 가중치행렬이 증가하고, 추정해주어야 할 가중치 역시 증가하게 됩니다. 이에 따라 수학적으로
항상 최적의 가중치를 구하기 어려워지고, 경사하강법 등의 수치적 최적화 방법론들과 오차역전파를 활용해
가중치를 업데이트해가며 최적의 값을 찾게 됩니다.
다음 그림은 하나의 퍼셉트론, 즉 노드와 레이어, 입력층, 은닉층, 출력층을 시각화한 것입니다.


이때, 출력층에서
출력을 결정하기 위해 활성화 함수를 사용하게 됩니다. 대표적인 활성화 함수로는 시그모이드와 ReLu, softmax등이 있습니다. 시그모이드는 임계값을 기준으로 1 또는 0의 값을 주는 step
function을 근사한 것으로, 다음과 같은 식과 그래프를 갖습니다. 시그모이드를 활용하면 미분이 가능하고, 또 그라디언트를 구하는 것이
쉬워 경사하강법을 활용한 가중치 업데이트가 가능하다는 장점이 있습니다.


한편, 가중치를
업데이트할 때 출력층과 은닉층 사이의 가중치행렬은 손실함수를 가중치행렬에 대해 미분함으로써 경사하강법을 활용해 쉽게 업데이트할 수 있습니다. 이 가중치행렬을 업데이트하는 방법은 다음과 같습니다.


은닉층과 입력층 사이의 가중치행렬을 업데이트하는 경우 그라디언트 식에서 오차를 대신할만한 것이 없게
되는데, 이를 근사해주기 위해 오차역전파법이 활용됩니다. 오차역전파법은
모델의 잔차와 예측치를 구할 때 사용해준 가중치를 사용하여 오차를 역추적해주는 방법입니다

이를 활용하여 오차와 가중치를 반복적으로 업데이트할 수 있게
되고, 이를 통해 최적의 가중치행렬을 구하고자 하는 기계학습 기법을 딥러닝이라고 합니다.
(2)
State
more than 5 things that you know/can/find ... after you studied the first Part
1, 2, 3, 4.
1.
가우스 조던 소거법 (GAUSS-JORDAN 소거법):
2.
선형연립방정식의 첨가행렬을 RREF로 변형하여 푸는 기법이다.
RREF는 다음과 같이 변형할 수 있다.
(1)
성분이 모두 0인 행이 존재하면 그 행은 행렬의 맨 아래에 위치한다.
(2)
각 행에서 처음으로 나타나는 0이 아닌 성분은 1이다. 이때 이 1을 그 행의 선행성분 (leading entry, leading 1)이라고 한다.
(3)
I 행과 (i+1) 행 모두에 선행성분이 존재하면 (i+1) 행의 선행성분은 i행의 선행성분보다 오른쪽에 위치한다.
(4)
선행성분(leading entry in row)을 포함하는 열의 선행선분 외의 성분은 모두 0이다.
3.
극소, 극대 판정법
점 (a,b)m이 근방에서 2변수 함수 f가 연속인 2계 편도함수를 갖고,
라고 할 때,

선행 주 소행렬식(leading principal minor) 또는 고윳값만 보고 그 부호만을 이용하여, 같은 ‘이변수함수의 극대극소판정법’ 에 도달할 수 있다.
4.
최소제곱해
y를 모델 y = a + bx에 xi를 대입하여 얻은 값이라고 하면, 최소제곱문제는 결국 오차
이 최소가 되는 a, b를 구하는 것과 같다.
X와 y에 대한 2차원 데이터가 주어진다고 할 때 좌표평면에 나타내면 다음과 같다.

5. 단사, 전사, 전단사, 동형사상

즉, 단사는 일대일 함수 / 전사는 모든 원소가 정의역에 대응하고 그 자체로 치역이 됨 / 전단사는 일대일 대응 함수 = 동형사상이라고 쉽게 설명할 수 있다.
T가 단사일 필요충분조건은 ker(T) = {0}이다.
6.
대각화 가능한 행렬
n차의 정사각행렬 A가 대각화가능할 필요충분조건은 A가 n개의 일차독립인 고유벡터를 갖는 것이다. 이때, 행렬 A는 자신의 고윳값 람다들을 주대각선성분으로 갖는 대각선행렬 D와 닮은 행렬이다.
A를 대각화하는 행렬 P를 구하는 과정은 다음과 같다.

.
1. 고차원 데이터에서의
정사영을 활용한 최적해 구하기
파트 1의 정사영 부분을 공부하고, 교수님께서 행렬로까지
이를 확장하여 정규방정식의 해를 구하는 법을 다루어 주셔서, 제가 이미 알고 있는 지식을 보충하고 되돌아볼
수 있었습니다. 정규방정식의 해 를 구하는 과정에서 제가 이미 통계학과의 전공수업에서 학습하여 익숙해져
있던 방식은 미분하여 최적 해를 구하는 방법이었습니다. 다중선형회귀에서 Y의 LSE로 쓰는 함수인 𝑌̂ = 𝑋(𝑋𝑇𝑋)−1𝑋𝑇𝑌 와 Y는 input space의 벡터 중 Y와 가장 거리가 짧은 벡터이므로 y를 x로 가장 잘 설명한 추정량임은 알고 있었으나, 𝑌 − 𝑌̂ 과 input space가 orthogonal 하다는 점을 활용하여 수식적으로 해를 구하는 방식 은 익숙하지 않았는데, 이번 수업을 통해 혼자 공부하며 정규방정식을 푸는 또다른 방법을 알게 되고,
더욱 익숙해지게 되었습니다.
또한, 여러 상황에서의 저차원(3차원)에서 수직거리를 손으로 구할 수 있는 능력에 그치지 않고 좀더 높은 차원에서 최소제곱해를 구하는 방법을 구축할
수 있었습니다. n차원 벡터의 n-1차원으로의 정사영 추정치, 즉 least square estimate를 실제 데이터 행렬과 R software를 활용해 구해 보았습니다. 이 때, 코딩으로 행렬곱, transpose, inverse matrix 등을
계산하여 직접 구해 보고, 혹은 R 내장함수인 lm()을 이용해 간편한 방법으로도 구해 보았습니다. 이를 통해, 정사영과 최단거리가 실제 데이터분석 에 활용되고 있는 방식과 그것이 내포하는 기하학적 원리에 대해 다시금 깨우칠
수 있었습니다.
2. 뉴턴 방법을 소프트웨어로 직접 구현
3주차의 뉴턴 방법을 학습하고 나서, 이를 R 소프트웨어로
직접 구현해 보는 실습을 하였습니다. 현재 는 유용한 R
package가 정말 많기 때문에 실제 데이터 분석을 할 때나, 심지어 자습을 하는 경우에도
배운 방법론들을 직접 구현하기보다 기존의 패키지를 활용하고 결과값을 내는 것에 급급할 때가 많았는 데, 뉴턴
방법을 배우고 이를 직접 함수를 짜서 구현해 봄으로써 뉴턴 방법의 원리를 더욱더 익숙하게 체득할 수 있는 좋은 기회였습니다.
3.
뉴턴 방법의 한계를 해결한 준뉴턴 방법의 응용
교수님께서 webex meeting 에서 자신의 전공과 관련하여 배운 것을 응용해봐도 좋다고
하셔서, 뉴 턴 방법이 통계학 분야에서 응용되는 방식에 대해 추가적으로 학습하던 중, 전통적인 뉴턴 방법에는 여 러 한계가 존재하고 실제로 응용될 경우 이를 해결한 준뉴턴 방법(quasi-newton method)이 가장 많 이 사용된다는 점을 알게 되었습니다. 뉴턴 방법의 가장 큰 단점은 최적화 문제에서 헤시안 행렬과 결 합하여 사용될 때, 헤시안을 반복적으로 계산하고 저장해야 하므로 시간적, 비용적으로
비효율적이라는 점입니다. 준뉴턴 방법은 헤시안을 정확히 계산하는 것이 아닌, 근사(approximation)하는 방법으로 시 간과 비용을 절약하게
됩니다. 저는 이를 저의 전공인 통계학의 다중회귀분석에 응용하여 X와 Y간 명 백한 비선형 관계가 존재하여 정규방정식의 최적해를 기존의 방법(1번에서
언급했던 미분하거나, orthogonality를 이용하여 구하는 방법)으로
구할 수 없는 경우 준뉴턴 방법을 활용하여 numerical 하게 최적해를 구하는 실습을 해 보았습니다.
이는 제게 정말 소중한 경험이었습니다. 학부수준의 회귀분석에서는 단순선형회귀나, 다항선형회귀까 지만을 다루고 추정량 𝑌̂ = 𝑋(𝑋𝑇𝑋)−1𝑋𝑇𝑌 를 공식처럼 쓰는 경우가 대부분인데, X와 Y간 비선형
관계 가 존재할 경우 단순선형회귀만으로는 잔차플롯의 추세가 없어지지 않아서 가정진단을 할 때 ‘redisual 이 독립이 아니다’, ‘X행렬이 Y를 충분히 설명하고 있지 않다’ 등으로 결론내리곤 하는데, 이를 해결할 수 있는 한 가지 도구를
얻을 수 있었기 때문입니다. 또한, 이 수업을 통해 뉴턴
방법의 탐색방향벡터 를 구하는 데 헤시안 행렬의 역행렬이 사용되고, 준뉴턴 방법은 이를 다양한 방법론을
통해 근사하여 그 근사 방법에 따라 다양한 종류가 있다는 것을 알게 되어 정말 유익했습니다.
4.
다변수함수의 테일러 정리 : 테일러 근사의 필요성
여러 전공수업과 미적분학 수업에서 일변수함수의 테일러 근사를
배운 바 있으나, 그 원리가 충분히 와닿지 않아 단순 암기식으로 배우는 경우가 많았는데 이를 다변수함수에
확장한 논의를 통해 비로소 그 원리를 체득할 수 있었습니다. 일변수함수의 경우 함수의 꼴이 복잡하지
않아서 테일러근사의 필요 성을 체감하지 못했는데, 다변수함수로 확장하여 선형근사식과 이차근사식을 배우고
나니 고차원에서 함수 f의 꼴이 특정되어 있지 않거나, 복잡한
비선형 꼴인 경우 그라디언트 f와 헤시안 행렬을 통해 이 를 근사하여 단순화할 수 있겠다는 생각이 들었습니다. 예를 들면, 통계학 분야에서 확률변수의 mgf(Moment generating function;적률생성함수)를
테일러정리를 이용하여 1차 적률인 기댓값 E(X)와 2차 적률 𝐸(𝑋2) 등 k차 적률의 함수로 단순화하여 나타내곤 합니다. 이를 확장하여 n차원 확 률변수 벡터의 mgf에 대해서도 mgf의 그라디언트와 헤시안 행렬을 활용하여 k차 적률벡터의 함수로
단순화하는 데 응용할 수 있겠다고 생각하였습니다. 복잡한 문제를 단순화하는 능력은 현대 사회가 요구하는
가장 중요한 역량입니다. 다변수함수의 테일러 정리에 대해 고찰함으로써 그 의의를 깨달을 수 있었습니다.
5.
변수변환법- 자코비안 행렬식에
대한 고찰
변수변환은 미적분학에서 소개하는 주요 개념 중 하나입니다. 이는 n차원 입력 벡터에 대한 n개 함수 를 다룰 수 있는 방법이므로 데이터분석에
활용되는 여러 확률분포를 이해하는 데 필수적입니다. 수리 통계학 수업에서 변수변환을 다룰 때 이미 접하고
계산해본 적이 있고, 자코비안 행렬식이 의미하는 바에 대해 어렴풋이나마 이해하고는 있었으나 왜 필요한지에
대한 구체적인 고찰은 적었습니다. 하지만, 이번 수업을 통해
자코비안 행렬식이 어떻게 적분구간의 변화를 보정해줄 수 있는 수치인지 이해할 수 있었습니다. 또한, 추가적인 학습을 통해 Y = u(X)일 때 함수 u에 대한 자코비안 행렬과 u의 역함수에 대한 자코비안 행렬이 서로
역행렬 관계에 있음을 증명할 수 있었고, 때문에 적분값을 구할 때 𝑢−1 의 자코비안 행렬식의 절댓값 대신 u에 대한 자코비안 행렬식의
절댓값의 역수를 택하여 계산해도 같은 결과가 나옴을 알 수 있었습니다.
6.
중심극한정리(CLT)증명과 코드 구현을 통한 확인
중심극한정리 역시 통계학의
주요 개념 중 하나인데, 이것이 왜 성립하는지를 MGF의
테일러전개를 통해 간단히나마 증명해보고 그 원리에 대해 고찰해 볼 수 있었습니다. 또한, 이를 코드를 통해 구현해 본 것은 처음인데 여러 가지 분포로부터 n개의
표본을 반복적으로 샘플링하고, 표본평균을 모아 이것의 히스토그램을 구하고 이것이 근사되는 해당 정규분포의
확률밀도함수와 비교해봄으로써 중심극한정리가 성립함을 확인해 볼 수 있었습니다. 또한, 다른 학우분이 normal q-q plot을 그리는 실습을 통해
확인해 주셔서 CLT가 성립함을 더욱 확실하게 보일 수 있었습니다
.
7.
SVD와 PCA의 관계 증명 및 PCA 최적화 문제 손으로
증명, 코드로 구현해보기
교수님게서 학기 초부터 SVD와
고윳값분해를 이후에 차원 축소를 위한 PCA(Principal component analysis)를
깨우치는 측면에서 강조하셨는데, 이번 주차에 드디어 PCA과정을
배우게 되어서 데이터의 분산을 최대화하는 최적화 과정을 라그랑지안 형식으로 직접 풀어 보고, 각 PC의 분산을 손으로 구해 보며 PCA에 대한 심도 있는 이해를 도모할
수 있었습니다. 또한, 이를 PCA를 직접 코드로 구현하는 과정을 통해 실제 상황에서 변수 간 상관계수가 높을 경우 이를 직접적으로 활용할
수 있는 능력을 기를 수 있었습니다. 또한, 적재계수를 활용하여
변수 간 가중치를 준 뒤 어떤 사회 현상에 대한 지수를 구하는 데 쓸 수도 있겠다는 아이디어를 얻을 수 있었습니다.
8.
신경망 모델의 작동 원리와 역전파에 대한 이해
딥러닝 분야에 대해서는 배경지식이 거의 전무하다시피 했는데, 이번 수업을 통해 딥러닝 모델의 개요에 대해 학습하는 계기가 되었습니다. 우선, 흥미로웠던 점은 딥러닝 모델의 꼴 역시 제게 익숙한 선형회귀모형과 다르지 않다는 점이었습니다. 선형회귀모형의 경우 X행렬에 계수
beta의 벡터를 곱하여 선형식으로 표현하고자 하는데, 이때 beta벡터를 가중치행렬로 확장하고, 활성화 함수를 각 층마다 적용하면
이것이 곧 다층 퍼셉트론, 즉 신경망 모델과 다르지 않음을 깨달았습니다. 또한, 역전파의 경우 용어는 들어보았으나 그 원리에 대해 상세히
알아본 적은 처음인데 우리 교재에서 간단한 예시를 들어 해당 내용이 정말 잘 설명이 되어 있어 이에 대해 쉽게 이해할 수 있었던 것 같습니다.
9.
여러 활성화 함수의 장단점과 특성
신경망 기반의 모델에서 사용되는 여러 활성화 함수에 대해 추가적으로 학습하였습니다. 각각의 장점과 한계, 그리고 이에 따른 고안 배경을 스토리텔링 형식으로
학습하다 보니 이해가 잘 되었습니다. 또한, 가중치 업데이트와
역전파 시 경사하강법과 결합되어 어떻게 갱신이 이루어지는지 수식 위주로 step-by-step으로 꼼꼼히 공부했습니다. 특히 인상 깊었던 것은 교재에서 시그모이드 함수를 활성화 함수로 이용하여 아주 간단한 신경망 모델에서 가중치행렬을
업데이트하고 역전파하는 과정이 매우 쉽고 자세하게 나와있다는 점이었습니다. 이를 통해 직접 손계산해보고
이미지를 그려 학습함으로써 딥러닝에 대해 더 잘 이해할 수 있는 계기가 되었던 것 같습니다.
(3)
State your
meaningful Comment/Answer/Discussions in Discussion/QnA.
후에 첨부하겠지만, 이번
수업의 QNA 게시판을 통해 학우분들과 활발히 소통함으로써 제게 정말 많은 것을 배울 수 있는 기회가 되었습니다. 특히 가장 인상깊었던 5가지 논의는 다음과 같습니다.
a.
뉴턴 방법의 오류에 대한 논의(질문자: 양지원 학우님)
뉴턴 방법을 기반으로 한
최적화 방법이 널리 상용화되어 있다는 것은 알고 있었지만, 뉴턴 방법 에 어떤 오류와 한계가 있는지에
대해서는 고찰해 본 적이 없었는데, 학우님들과의 논의를 통해 수 식적으로 보았을 때도, 컴퓨터로 알고리즘을 실행시킬 때도 단순한 함수에 대해서 오류를 발생시킬 수 있음을 확인했던 시간이었습니다. 함수의 근이 2개 이상인 경우 뉴턴 방법은 초깃값에 민감하 여 여러
번 시행했을 때 동일해로 수렴하지 않을 수 있다는 단점이 있음을 알게 되었고, 미분계수 가 0인 x값을 초깃값으로 사용하여 미분계수를 직접적으로 계산하게 되면
알고리즘이 발산하지만 직접적으로 미분계수를 구하지 않고 극한을 구하기 전의 함숫값을 이용하면 알고리즘이 정상적으 로 작동함을 알 수 있었습니다.
이를 통해 뉴턴 방법의 오류에 대해 고찰해 보고 뉴턴 방법뿐 아니라 뉴턴 방법의 오류를 직접 구현해볼 수 있는 소중한 경험을 터득할
수 있었습니다.
b.
대각화 시 고윳값의 배열과 고유벡터
간 일차독립에 관한 논의(질문자: 민소은 학우님)
직교대각화를 할 때 왜
보통 큰 고윳값과 이에 해당하는 고유벡터부터 정렬하는지, 왜 고유벡터들 이 독립이어야 하는지에 대해
고찰해보는 계기가 되었습니다. 고윳값과 고유벡터를 구하는 식 Ax=
lambda x이 내포하는 기하학적 의미를 생각해 보면, Ax는 행렬 A의 열벡터들의 모든 선형결합 을 고려하는 것이고, lambda x는
그 선형결합에 쓰인 계수 벡터가 lambda에 의해 scaling되는
것을 의미합니다. 따라서, 방정식을 풀면 곧 행렬 A가 span하는 공간에서 가장 많은 값이 존재하 는 방향벡터들과
각 방향에서 얼마나 variability가 심한지를 수치적으로 고려해준 것이 고유벡터 와 고윳값임을
고찰을 통해 깨달을 수 있었습니다. 때문에, 모든 고유벡터들은
서로 다른 축을 의 미하게 되므로 서로가 서로를 선형결합으로 만들 수 없는 ‘일차독립’의 관계여야 하고, 분산이 가장 큰 축이 행렬 A가 생성하는 공간에서 중요한 축이기 때문에 보통 가장 큰 고윳값부터 정렬하게 되 는 것임을 알게 되었습니다. 이를 민소은 학우님의 질문에 대한 답변으로 풀어 설명하고, 다른
학 우분들의 답변을 참고하며 제게 충분히 설명되지 않은 지식의 틈들을 메꿀 수 있는 좋은 기회였던 것 같습니다.
c.
뉴턴 방법의 응용에 대한 논의: 통계학의 quasi-newton method와 공학의 로봇 팔 각도
계산(작성자: 박정현)
뉴턴 방법에 대한 수업을 듣고, 이 방법론이 실제 생활에서 어떻게 쓰이는지에 대한 궁금증이 생겼고, 이를
저의 전공인 통계학의 최적화 분야와 관련하여 직접 실습해본 의미있는 경험이었습니다. 하지만, 이 논의가 뜻깊었던 이유는 전혀 다른 전공을 가진 오혜준 학우님과
newton method가 어떻게 활용되고 있는지에 대해 심도 높은 지식과 사례를 공유했기 때문입니다. 캠퍼스 특성상 다 른 전공의 학우분들이나, 특히 율전캠퍼스에 있는
전공의 학우분들과는 지식을 공유할 기회가 드문데, 이 수업을 통해서 소중한 경험을 얻었다고 생각합니다.
d.
확률의 공리와 이로부터 파생된
정리 증명(질문자 : 김석하)
확률의 공리를 배우고, 이것이 확률을 논리적으로 체계화하는 데 필요하다는 점에서 필요성을 다시금 깨달을 수 있었습니다. 김석하 학우님께서 이를 시각적으로 잘 정리해 주셔서, 저는 이로부터
파생된 정리를 공리를 활용하여 엄밀히 증명해 보았습니다. 이를 통해 확률이 엄밀한 수학적 토대 위에서
정의된 것이며, 확률의 공리와 집합 간 관계식만을 이용하여 여러 성질들이 증명될 수 있다는 점을 배울
수 있었습니다.
e.
이항분포를 포아송 분포로 근사할
때 np <5라는 조건이 필요한 이유(질문자 : 홍정명)
이항분포가 포아송분포로 근사될 수 있다는 점, 포아송분포가
이항분포에 비해 상대적으로 발생확률이 적은 rare event를 다룬다는 점은 알았지만, 구체적인 수치와 근사가 잘 되는 조건은 잘 알지 못했었는데 이때 근사가 잘 되는 조건이 왜 팔요한지에 대해
곰곰이 생각해 봄으로써 지식과 지식 간 연결고리를 찾을 수 있었던 논의였습니다. 또한, 이를 fixed time point 동안 일어나는 사건의 수를 모델링하는
포아송과정과 연결지어 이해를 더욱 공고히 할 수 있는 계기가 되었습니다.
f.
PCA 최적화 과정 손증명, SVD와의 관계 손풀이(작성자 : 박정현)
우선, 교재에서 PCA과정이 정말 친절하게 설명되어 있다는 점에서 놀랐습니다. PCA가
데이터의 분산을 최대화하는 축을 찾고, 그때의 축의 분산이 곧 공분산행렬의 고유값이라는 점은 알았지만, 이를 직접 손으로 증명해 본 것은 처음이었습니다. 교재와 이전에
공부했던 여러 자료들을 찾아보면서 직접 해 보니, PCA에 대해 더 확실히 이해할 수 있는 계기가 되었던
것 같습니다. 또한, 공분산행렬을 고윳값분해하는 과정과 SVD하는 과정이 동일하다는 점을 보임으로써 교수님께서 항상 강조하신 SVD와 PCA의 이론을 더욱 잘 알게 된 것 같아 뿌듯했던 경험이었습니다.
g.
ReLu 활성화 함수로 가중치 업데이트하기 손풀이(작성자 : 박정현, 질문자 : 이지용)
교재에 sigmoid 함수를 활성화함수로
하여 경사하강법을 이용해 가중치를 업데이트하는 과정이 나와 있어서, 저는 이를 확장하여 은닉층이 2개인 모델에서 sigmoid 의 한계를 해결한 Relu 함수로 활성화함수를 택했을 때 가중치를 업데이트하기 위해 각 가중치행렬에 대해 chain rule 을 이용하여 그라디언트를 손으로 구하고, 가중치를
업데이트할 때 얼마만큼씩 업데이트가 되는지 손으로 계산해 보았습니다. 이를 통해 활성화 함수와 그라디언트
구하기, 가중치 업데이트 과정에 대해서 더 잘 이해할 수 있게 되었습니다.
경사하강법을 공부하면서 Gradient Descent Method와 Newton’s Method와의 공통점과 차이점에 대해 학우분들과 서로 질문하며 토론했던 것이 흥미로웠습니다.
아래는 실제 질문을 하며 토론을 했던 문의게시판의 해당 글입니다.
[Final OK] Re-Finalized by 박건영, 김은진, 박정현, 안은선, 김성준, 김수민 (경사하강법 요약 및 질문)
작성자 : 김수민(2020####78)작성일 : 7월 30일 오전 4:42
조회수 : 7
강의를 듣다 경사하강법과 뉴턴방법의 차이점에 대해 저도 궁금증이 생겼는데 비슷한 질문이 있어 덕분에 해답을 얻었습니다. 경사하강법인 Gradient Descent Method는 learning
rate를 통헤 기울기의 방향을 일정 거리만큼 조절하는 작업을 반복해 극대, 극소를 찾는 방법이며, 뉴턴 방법인 Newton's
Method는 함숫값이 0이 되는 즉 근사적인 해를 찾는 방법이라는 차이점에 대해 알게되었습니다. 경사하강법과 뉴턴 방법을 더 정확히 이해하는데 도움이 되었습니다.
목록으로 이동
[ Final OK by
SGLee ] Finallized by 이상구교수님, 박건영, 김은진, 박정현, 안은선, 김성준 (경사하강법 요약 및 질문)
작성자 : 김성준(2017####61)작성일 : 7월 29일 오전 00:07
조회수 : 21
[4주차] 경사하강법 요약 및 질문
작성자 : 박건영(2021####42)작성일 : 7월 27일 오후 10:09
조회수 : 54
경사하강법의 개념을 쉬운말로 정리한 것 입니다!

경사하강법과 뉴턴방법의 기본 접근은 비슷한 것 같은데 차이점이 궁금합니다!
댓글
이상구(LEE SANGGU)7월 27일 오후 10:25
1. gradient descent 방법은 함수의 극대, 극소를 찾는 방법이고 2. Newton 방법은 함수값이 0이 되는 해를 찾는 방법입니다.
이상구(LEE SANGGU)7월 27일 오후 10:37
잘 했어요? 그런데 ... 이미 비슷한 일을 더 잘 해놓은 다른 동료 학생들의 자료를 읽고 ... 개선 하면서 ... 새로운 시도를 보태면 더 좋답니다.
김은진(2020####41)7월 27일 오후 11:03
위의 교수님의 답변을 바탕으로 두 방법의 차이를 찾아보았습니다. [경사하강법] x <- x-αf'(x) [뉴턴 방법] x <- x-f'(x)/f''(x) 경사하강법은 α를 사람이 설정하고 α만큼 기울기 방향으로 x값을 갱신하는 반면, 뉴턴 방법은 2차 미분을 이용하여 경사하강법에서의 α를 자동으로 조정합니다. 즉, α를 1 / f''(x)로 대체한 것입니다. 경사하강법은 1차 미분의 정보만을 사용하는 반면 뉴턴 방법은 2차 미분의 정보도 활용하므로 목적지에 더 빨리 도달할 가능성이 높습니다. 물리 세계로 보면 뉴턴 방법은 '속도뿐만 아니라 가속도 정보'까지 사용하기 때문이라고 하네요
박정현(2018####21)7월 28일 오전 00:03
첨언하자면, Gradient descent 방법은 gradient f 앞에 붙은 하이퍼파라미터 a로 알고리즘의 수렴속도를 조정합니다. 이를 대다수의 머신러닝 모델에서는 learning rate 라고 하는데 이 learning rate가 너무 크면 알고리즘이 수렴하지 않을 가능성이 있고, 너무 작으면 local minimum/maximum에 갇힐 수 있다는 단점이 있습니다. 때문에, 다양한 값의 파라미터에 대해 교차 검증(CV)하거나 hold out method로 평가하여 손실함수가 최소화되는 learning rate 값을 도출하는 것이 중요합니다. 이 과정을 하이퍼파라미터 튜닝이라고 합니다. 한편, 뉴턴법에서는 이러한 alpha를 자동으로 결정해주기 때문에 하이퍼파라미터를 튜닝할 필요가 없지만 데이터에 대해 함수 f의 specific form을 가정하지 않는 경우 손실함수의 그래디언트만을 계산하는 경사하강법 계열의 머신러닝 방법론을 많이 사용합니다. 그러나, 특정한 함수의 극대/극소를 찾는 문제의 경우 지정된 learning rate에 대해 경사하강법을 쓸 수도 있고, 이는 f'(x)=0의 근을 찾는 문제와도 연결되므로 이계도함수행렬(헤시안 행렬)과 결합하여 뉴턴 방법을 적용해도 됩니다.
이상구(LEE SANGGU)7월 28일 오전 00:04
1. gradient descent 방법은 함수의 극대, 극소를 찾는 방법이고 2. Newton 방법은 함수값이 0이 되는 해를 찾는 방법입니다. gradient descent
방법은 Newton method 와 비교 보다는 Quasi-Newton method
와 비교 하는 것이 맞는데 ... 심화 단계에서 하시면 됩니다. ... 지금은 고민 하지 않으셔도 됩니다. 프로젝트 제안서에 반영하시기를 권합니다.
안은선(2020####19)7월 28일 오후 3:09
Gradient descent 방법은 기울기의 방향으로 일정 거리만큼 이동하여 다시 기울기를 구하는 작업을 반복하여 극대, 극소를 찾는 방법입니다. Newton 방법은 함수값이 0이 되는 근사적인 해를 찾는 방법이라는 점이 Gradient descent 방법과의 차이점입니다!
교수님께서 언급하신 Quasi-Newton
method에 대해 궁금해져서 잠깐 알아보는 시간을 가졌습니다.

Quasi-Newton methods는 각 반복(iterateration)에서
objective function에 대한 gradient만을 필요로 합니다. 이는 이차 미분을 필요로하는 newton methods보다 계산적인
부담이 훨씬 적으며 더불어 superlinear convergence를 보인다는 점에서 충분히 매력적인 방법이라고 볼 수 있습니다.
어려운 내용이라 이해가 잘 안되지만 좀 더 고차원적인 이해를 하고 계신 학우분들께서는 참고하시면 좋을 것 같습니다.
이전
다음
2개의 댓글
이상구(LEE SANGGU)7월 29일 오전 6:16
[ Final OK by SGLee ]
김수민(2020####78)7월 30일 오전 4:40
강의를 듣다 경사하강법과 뉴턴방법의 차이점에 대해 저도 궁금증이 생겼는데 비슷한 질문이 있어 덕분에 해답을 얻었습니다. 경사하강법인 Gradient Descent
Method는 learning rate를 통헤 기울기의 방향을 일정 거리만큼 조절하는 작업을 반복해 극대, 극소를 찾는 방법이며, 뉴턴 방법인 Newton's Method는 함숫값이 0이 되는 즉 근사적인 해를 찾는 방법이라는 차이점에 대해 알게되었습니다. 좋은 질문과 여러 학우분들의 명확한 답변 감사합니다. 경사하강법과 뉴턴 방법을 더 정확히 이해하는데 도움이 되었습니다.
Fill in the below for your self-assessment and your project/term paper.
(A) Briefly describe your contributions through
Q&A for yourself and fellow students in our "Introductory
Math4AI" classes!
(A1)Quantity :
- Check
your participation numbers in QnA for each week (Saturday to
Friday):
Week
1: 2
Week 2:
2
Week
3: 2
Week 4: 2
Week 5: 9
Week 6:7
Week
7: 9 Week 8:
Week 9:
Week
10: Week
11:
Week 12:
Week
13:
Week
14: Week
15:
- Total number of
sessions (Q: , A: , Others: 4
code-practice + 4 summary = 21 participation on Q&A )
-
Number of online
attendances: ( 33 )
- Off-line attendance and
number of absences:
( / ) (0 absence)
·
Others Include some announcements or course
related posts.
(A2) What you contributed
through this course (Q & A and/or In-class)?
Summary for code-practice from week 1 to week 6
Summary for the key points from week 1 to week 6
(A3)
No. of Final OK by SGLee Problems (and/or Completed Discussion/Question) in QnA
that your name is included.
(B)Quality of Your Participation: 33
(B1) What did you especially
remember while you are doing A-1, 2, 3.

The reason why we firstly to study linear algebra is that all of things
in this world can be described by using vectors. Moreover, linear algebra
applies a best way to solve system of linear equations by using determinant
& many types of matrix. Especially Hessian determinant & Jacobian
determinant & inverse matrix & diagonal matrix & orthogonal matrix.
Moreover, Hessian Determinant & Jacobian determinant can also be used in
differential and probability. Moreover, we can use them to solve n-dimension of
dataset. There are two main ways to reduce the higher dimension including SVD
& PCA.
PCA is a dimension reduction method, which means to
reduce the rank of the covariance matrix by using SVD. More specifically, the
process of dimension reduction is that to delete some relative unimportant
eigenvectors, then use the rest of eigenvectors to create a reduced space (a
smaller size of matrix). Although this method has to lost some eigenvectors,
the relative important eigenvector will be preserved in the end in order to
make sure total information of the dataset is as same as possible. Moreover,
PCA method is more efficient than the linear regression method due to the fact
that there is minimum distance from each data to the linear function. (Each
data is orthogonal to the linear function). Thus, if we use the reduced size of
matrix to analysis and application of such an amount of dataset, we will
efficiently deal with data.
Moreover, I am very interested in deep neural network.
Amazing! The algorithm of deep neural network is that in order to decrease the
error between predictive value and correct value, which means to update the
weight by using back propagation and gradient descent method.
(B2) What did you learn or feel while learning
Introductory Math4AI (Action Learning/PBL) with your classmates
At the
beginning of this course, I don’t know how to study this course, but I saw many
other excellent students uploaded summary & Code-practice for every week on
문의게시판. Thus, I did the same
thing. Moreover, they are all smart
person, I am not a smart student, so I feel a lot of stress and I have no
confidence to learn this course well. However, I also feel good academic
atmosphere in 문의게시판, which means these
excellent students have a great passion about learning this course. They have
positive attitude toward learning and independent thinking.
(B3) Write names of YOUR PBL Team members and Team
Leader.
I did my PBL(report) by myself. My name is Dong Na.
The first topic of my report is Economic key points
corresponding to the key points of Basic Mathematics for AI.
The second topic is Blockchain(Bitcoin) &
Probability.
|
Subject |
Introductory Math4AI |
Major |
Economics |
||||
|
Name/ID |
Dong Na 2017 |
Year |
August,14 2021 |
||||
|
Learning contents |
Linear Algebra +
derivative & integration+ probability |
||||||
|
Self-Checking |
|||||||
|
Activity |
Excellent |
Good |
Fair |
||||
|
1. |
I have contributed
to generate ideas and facts needed to resolve the issue. |
|
Yes |
|
|||
|
2. |
I proposed learning
issues associated with learning. |
|
Yes |
|
|||
|
3. |
When I study alone,
I used a variety of learning materials. |
Yes |
|
|
|||
|
4. |
I provide new
information and knowledge in this class. |
|
Yes |
|
|||
|
5. |
I was actively involved
in the discussions. And I provided a lot of questions in order to understand
these discussions. |
|
|
Yes |
|||
|
6. |
I have made a
contribution to the learning activities for our class. |
|
|
Yes |
|||
|
※ Please record
the following items by considering your learning process. 1. Do you understand the most of contents of this learning
process? I think maybe 65%-70% of understanding of the contents which
professor taught. 2. What kind of learning materials have you used to study? << 인공지능을 위한 기초수학>> Written by 이상구 with 이재화 <<Linear Algebra>> Written by Sang-Gu LEE with Jon-Lark KIM, In-jae KIM, Namyong
LEE, Ajit KUMAR, Phong VU, Victoria LANG,Jae Hwa LEE <<Fundamental Methods of Mathematical Economics>> Written by ALPHA C. CHIANG, KEVIN WAINWRIGHT <<张宇考研数学基础30讲>> Written by 张宇 <<통계적확률분포>>. Written by
홍종선 3. What did you learn through the learning activities of this
course? Many mathematical contents, I think the most differential
point of this course between normal math course is that apply sage-code at
the same time. Sage-code is a very useful tool which can solve all kinds of
problems in this world. 4. What have you learned from the other colleagues? The contents written in sage-code can be rewritten by using
python code. And many other deeper knowledge points. 5. Self-Evaluation for Q/A Activities My score: 12
(12/20) 6. Evaluation for other students Maybe some summary written by me. I’m not really sure. I’m not
good at writing code. |
|||||||
Self-Evaluation 2
|
Subject |
Introductory
Math4AI |
Major |
Economics |
||||||
|
Name/ID |
Dong Na
2017315099 |
|
|
||||||
|
Evaluation Items |
Strongly disagree |
Disagree |
Mostly disagree |
Mostly agree |
Agree |
Strongly agree |
|||
|
1. I participated actively in both, online and offline classes. |
|
|
|
|
Yes |
||||
|
2. I participated actively on a Q&A activity. |
|
|
|
|
Yes |
|
|||
|
|
3. My question and replies made on Q&A are relevant. |
|
|
|
|
Yes |
|
||
|
|
4. Information provided by my activity was useful for other students
in the class. |
|
|
|
Yes |
|
|||
|
|
5. I enthusiastically took into the consideration other students’
opinions or point of view. |
|
|
|
|
Yes |
|||
|
|
6. I contributed to class by participating on Q&A discussions. |
|
|
|
|
Yes |
|
||
|
|
7. I am enthusiastic about taking other class with the same students I
am taking Discrete Mathematics. (I am so sorry. I don’t know what
this means) |
|
|
|
|
|
|||
|
[Opinion] ► Satisfaction according to the
Self-Evaluation I think only 65%.
I only uploaded some files and several questions. ► Sorrow according to the
Self-Evaluation I think 35%. I
should more actively take finalized participation/project in the last week. |
|||||||||
·
Self-Evaluation 3(Other students)
|
Subject |
Introductory
Math4AI |
|||||||
|
Colleague’s name |
김태윤,오혜준,양지원,박정현,이시원,김보민,김석하 (They are all excellent colleagues) |
|||||||
|
Name of evaluator |
Dong Na |
|||||||
|
Evaluation
Items |
Strongly disagree |
Disagree |
Mostly disagree |
Mostly agree |
Agree |
Strongly agree |
||
|
1. I (They)
participated actively in both, online and offline classes. |
|
|
|
|
|
Yes |
||
|
2. I(They)
participated actively on a Q&A activity. |
|
|
|
|
Yes |
|||
|
|
3. My (Their)question
and replies made on Q&A are relevant. |
|
|
|
|
Yes |
||
|
|
4. Information
provided by my(them) activity was useful for other students in the class. |
|
|
|
|
Yes |
||
|
|
5. I(They)
enthusiastically took into the consideration other students’ opinions or
point of view. |
|
|
|
|
|
Yes |
|
|
|
6. I(They) contributed
to class by participating on Q&A discussions. |
|
|
|
|
Yes |
||
|
|
7. I (They)am
enthusiastic about taking other class with the same students I am taking
Discrete Mathematics. (I am so
sorry. I don’t know what this means) |
|
|
|
|
|
||
|
[Opinion] ► Satisfaction according to the Self-Evaluation(evaluation of Other
colleagues’) I think almost 100 scores. They
provided many python code & the process of proof & many other overall
knowledge & positive attitude. ► Sorrow according to the Self-Evaluation(evaluation of other
colleagues’) No. they did perfect job!!! They are all
excellent students. |
||||||||
자신의 학습에
도움이 된 우수한/성실한 동 료 평 가
|
과 목 명 |
인공지능을 위한 기초수학
입문 |
|||||||
|
|
(두 명 이상의 추천을 받은 학생은 가산점) |
|||||||
|
피평가자(동료) ID Best classmate |
오혜준(2016****81),
김보민 |
|||||||
|
평가자(작성자) ID your name |
박정현(2018), 김수민 |
|||||||
|
평가항목 |
전혀 아니다 |
아니다 |
약간 아니다 |
약간 그렇다 |
그렇다 |
매우 그렇다 |
||
|
1. |
온라인-오프라인 출석을 규칙적으로 하였다. |
|
|
|
|
|
O |
|
|
2. |
QnA에 적극적으로 참여하였다. |
|
|
|
|
|
O |
|
|
3. |
QnA 내용에 적합한 질문과 응답을 하였다. |
|
|
|
|
|
O |
|
|
4. |
동료에게 도움에 되는 지식과 정보를
제공하였다. |
|
|
|
|
|
O |
|
|
5. |
다른 동료의 의견을 존중하였다. |
|
|
|
|
|
O |
|
|
6. |
QnA 운영 및 의견수렴과정에 긍정적으로 기여하였다. |
|
|
|
|
|
O |
|
|
7. |
이번 강좌의 동료와 다른 수업도 듣고
싶다. |
|
|
|
|
|
O |
|

Ch 2장. Participation (참여부분, 정량) 자기 평가와 본인의 Project (Term paper) 제안서
등에 대해 아래를 채우시오. (20점)
1. (20점) 본인이 그간 Q&A, 동료학생, “본"강좌 등에 기여한 내용을 간단히 서술하세요!
(1)
QnA 참여 횟수 <QnA에서 직접 확인하세요> : 각
주별 (토요일에서 금요일)
(2) 1주차 : 총 9회
(3) 2주차 : 총 3회
(4) 3주차 : 총 5회
(5) 4주차 : 총 3회
(6) 5주차 : 총 4회
(7) 6주차 : 총 3회
(8) 7주차 : 총 5회
총 32회 (질문 : 7회, 답변/수정/Finalize : 25회)
|
1주차 |
2주차 |
3주차 |
4주차 |
5주차 |
6주차 |
7주차 |
|
총
3회 |
총
2회 |
총
6회 |
총
2회 |
총
14회 |
총
6회 |
총
5회 |
|
총 38회 (질문: 1회, 답변/수정/Finalize/실습포함:
37회) |
||||||
(9)
다음 밑줄 친 곳에 들어갈 내용을 고르시오.
나는 아래의 내용 중 (하이라이트 한 것, ... 함수, 벡터, 행렬, 텐서, 노름, 내적, 선형연립방정식, 가우스 소거법, RREF, 첨가행렬, 정사영,
최소제곱문제, LU분해, QR 분해, SVD, 도함수, 미분, 극대, 극소, 최대, 최소, 경사 하강법, 학습률, 그래디언트, 순열, 조합, 베이즈 정리, 확률변수, 확률분포, 기댓값, 분산, 표준편차, 공분산, 상관계수, 주성분 분석(PCA), 인공신경망, 오차역전파법(Back propagation), MNIST ...
)의 개념을 이해하고, 설명할 수 있으며, (간단한 것은 손으로, 복잡한 것 은 Sage/R/python 등의 도구를 이용하여) 계산하여 그 의미를 설명할 수 있다.- 6주차 범위까지 표시하였습니
다.
(박스 안의 키워드에서 자신이 충분히 이해하고
있는 것을 표시하시면 됩니다.)
나는 아래의 내용 중 함수, 벡터, 행렬,
텐서, 노름, 내적, 선형연립방정식, 가우스 소거법,
RREF, 첨가행렬, 정사영, 최소제곱문제, SVD, 도함수, 미분, 극대, 극소, 최대, 최소, 경사하강법, 학습률, 그래디언트, 순열, 조합, 베이즈
정리, 확률변수, 확률분포,
기댓값, 분산, 표준편차, 공분산, 상관계수, 주성분
분석(PCA), 인공신경망, 오차역전파법(Back propagation), MNIST을 이해하고, 설명할 수 있으며, (간단한 것은 손으로, 복잡한 것은 Sage/R/python 등의 도구를 이용하여) 계산하여 그
의미를 설명할 수 있다
(10) 개인/동료와 같이 “본” 강좌를 학습하면서 배우거나 느낀 점은?
(11) 인공지능을 위한 기초수학을
수강하면서 학습방법에 대해서 많이 배웠습니다. 물론 인공지능 모델들을 위한 수학적 지식과 개념 그리고
코드 응용까지 AI를 위한 실력도 강좌를 통해 많이 늘었습니다. 하지만
이보다 제가 앞으로 공부를 어떻게 해야 하는지에 대해 배운 것이 가장 큽니다. 본 강좌에서는 강의를
듣고, 본인이 이해했거나 다른 학우분들이 작성한 것을 보며 새롭게 다시 이해하여 Finalize 하는 과정으로 수업이 진행됩니다. 즉, 혼자만 열심히 공부하는 방식이 아니라 학우분들 그리고 교수님과 함께 협력하며 서로가 서로에게 도움이 되어주는
방식으로 수업이 진행됩니다.
(12)
(13) 저는 고등학생 때 스포츠계열에
있어서 문과 수준에서의 수학적 지식만 가지고 있었습니다. 그렇기에 본 강좌의 대부분 내용이 처음에는
이해가 되지 않았습니다. 강의를 처음 들었을 때 저는 어떻게 공부해야 하나 정말 막막했습니다. 그때 교수님께서 혼자 공부하기보다는 다른 학우분들이 한 것을 보며 거기에 추가하는 방식으로 공부를 해보라고
하셨습니다. 저는 그 말씀을 듣고 다른 학우분들이 한 것을 보며 제가 이해했고, 새롭게 해보고 싶은 것들을 추가하여 저의 활동들을 늘려나갔습니다.
(14)
(15) 실제로 다른 학우분들의
활동들을 보며 저의 활동들을 늘려 나가보다 보니 강의의 내용이 혼자 공부할 때보다 더욱 쉽고, 빠르게
이해되었습니다. 그러면서 앞으로 공부는 이렇게 해야 하겠다고 생각했습니다. 앞으로는 더 어렵고 복잡한 문제와 지식을 알아야 하는데, 혼자의
힘보다는 협력하며 지식을 쌓아가는 게 훨씬 강력하다는 것을 알았기 때문입니다. 그리고 실제로 수학적
지식이 전혀 없던 제가 이제는 본 강좌의 목표인 Gradient Descent Method, 최소제곱해
등과 같은 여러 개념을 이해했고, 코드로도 응용할 수 있기 때문입니다.
(16)
(17)
그렇기에 저는 본 강좌에서 여러 사람과 협력하고 소통하며 공부하는 법을
알게 되었으며 수학에 대한 자신감 또한 생겼고, 앞으로 어떻게 제가 어떠한 공부 방법으로 정하게 되었습니다.
데이터분석과 밀접한 전공을
가지고 있고, 관심을 가지고 꾸준히 공부해 왔다고 생각했는데, 다양한
전공을 가 진 분들과 함께 논의하면서 아직도 부족한 점이 많다고 느꼈습니다. 특히나 수학적인 부분에서
수식을 더 빠르고, 직관적으로 이해하는 학우분들을 보며 알고 있는 부분을 복습하거나, 수식적인 부분을 엄밀히 증명하는 데 시간 과 노력을 더 들여 계속해서 훈련해야겠다고 느꼈습니다.
또한 질의응답에 참여하다
보니 20-21학번 분들이 상당히 많은 것을 볼 수 있었는데, 그만큼
빅데이터와 인공 지능 분야에 대한 범국민적 관심이 증가하고 있음을 체감할 수 있었습니다. 특히나 이
수업은 단순히 개발된 방 법론들을 사용하여 결과물을 내는 데 그치지 않고 보다 원초적인 수학적 기본을 닦을 수 있는 수업이라고 생각 하는데, 누구보다 열심히 참여하시는 20-21학번 분들을 보며 이러한 수학적
기본에 대한 중요성을 일찍부터 고 려하고 있으신 것 같아 좋았습니다. 그분들의 모습이 제게도 큰 동기부여가
되었습니다.
(Final PBL)
수업을 마치며, 본 수업에서 제가
가장 크게 깨달은 것은 ‘꾸준함의 힘’ 입니다. 저는 다소 성격이 급하여 그간 전공 공부나, 교양 공부 등을 할 때 한 번에 이해가 되지 않는 개념이 나오면 대략적인 원리만 이해하고 문제를 푸는 데 급급하곤
했습니다. 전공 특성상 100프로를 이해하기에는 너무나 복잡하고
섬세한 개념이 많았기 때문입니다. 그러나, 이번 수업을 듣고
질의응답에 꾸준히 참여하며 이해가 되지 않는 개념이라도 꾸준히, 끈기 있게 질문하면 이해가 되는 순간이
결국 있음을 느꼈습니다. 그리고 그것은 이번 수업, 교수님께서
편안하고 꾸준하게 질문할 환경을 조성해 주신 덕분이라고 생각합니다.
꾸준하고 편안한 질문의 중요성 자체에 대해서는 누구도 반박하지 못할 것입니다. 그럼에도 대부분의 수업에서 그러한 질의응답이 미비한 것은 교수님과, 다른
학우 분들에게 다가가 질문하는 것이 어렵게 느껴지는 환경 때문일 것입니다. 그러나 이번 수업은 달랐습니다. 교수님께서는 어떤 불편사항이라도 문의를 드리면 친절하게 답변해 주셨고, 모두가
질의게시판에서 꾸준히 질의응답에 참여하니 질문하고 답변하는 것에 대해 두려움이나 부담을 느끼지 않게 되었습니다.
이런 수업의 형태가 누군가에게는 귀찮게 느껴질 수도 있겠지만, 분명 의미 있는 체계라고
생각됩니다. 앞으로 어떤 수업을 듣든, 주저 없이 질문하고
꾸준히 학습하는 학생이 되어야겠다는 생각을 했습니다.







































13) Covariance
& Correlation Coefficient


14) Normal
Distribution & Standard Normal Distribution






|
Class |
인공지능을 위한 기초수학 입문 |
||||||
|
Name/이름 |
박정현, 김수민 |
ID |
2018, 2020 |
||||
|
학습한 내용 |
함수, 벡터, 행렬, 텐서, 노름, 내적, 선형연립방정식, 가우스 소거법, RREF, 첨가행렬, 정사영, 최소제곱문제, SVD, 도함수, 미분, 극대, 극소, 최대, 최소, 경사하강법, 학습률, 그래디언트, 순열, 조합, 베이즈 정리, 확률변수, 확률분포, 기댓값, 분산, 표준편차, 공분산, 상관계수, 주성분 분석(PCA), 인공신경망, 오차역전파법(Back propagation), MNIST, 선형대수와 미적분학이 인공지능 분야에서 어떻게 활용되고 있는지, 수식적인 부분을 엄 밀히 증명하고 배운 지식을 sage뿐 아니라 R software 를 통해 스스로 구현하여 보다 더 정확한 이해를 도모하는 데 집중하였습니다. 또한, 학우분들과의 논의를 통해 지식을 간학문적으로 교류하고, 알고 있는 개념을 재확인하는 데 전념하였습니다. |
||||||
|
자기 점검표 |
|||||||
|
활동(Activity) |
Excellent |
Good |
Fair |
||||
|
1. |
나는 개인학습을 할 때 다양한 학습 자료를 사용하였다. |
|
O |
|
|
||
|
2. |
나는 새로운 정보와 지식제공에 기여하였다. |
|
|
O |
|
|
|
|
3. |
나는 토의에 적극적으로 참여하였고, 토의의 촉진과 이해를 위한 적절한 질문을 많이 제공하였다. |
O |
|
|
|||
|
4. |
나는 우리 반이 원활한 학습활동을 하는데 기여하였다. |
|
|
O |
|
|
|
※ 다음 항목들을 고려하여 자신의 학습과정과 내용을 기록하시오.
1. 나는 지금 수행되고 있는 학습의 진행내용을 이해하고 있는가?
네. 제가 문과(스포츠)에서 공부하여 수학적 지식이 부족해서 처음에는 어려움을 많이 느꼈습니다. 그러나
다른 학우분들의 활동들을 열심히 보며 따라가다 보니 이제는 전체적인 수업의 흐름을 잡게 되었고, 개념을
이해하여 코드로 응용할 수 있게 되었습니다.
네. 이해하고 있습니다. 이 수업은 인공지능 분야에서 널리 쓰이는 방법론들의
기반이 되는 여러 수학적 이론을 다룹니다. 현재 중간 범위까지는 기본적인 선형대수/미적분학 개념과 그것의 확장 및 응용, 통계와 확률, 그리고 이를 기반으로 한 PCA에 대해 배웠습니다.
기말 범위까지는 딥러닝 모델의 기반이 되는 신경망과 이를
구성하는 가중치행렬, 활성화함수, 가중치행렬 업데이트 방법, 오차역전파법 등에 대해 배웠습니다.
2. 어떤 방법을 통해서 학습하였는가? (학습방법
및 자료)
우선 처음에는 본 강좌의 강의를 최대한 열심히 수강했습니다. 그러나 수학적 지식이 부족했기 때문에 20% 정도 이해했습니다. 여기서 저는 제가 본 강의의 내용을 요약하거나
정리한 다른 학우분들의 활동들을 보았습니다. 그러면서 개념을 천천히 다시 읽어보면서 50% 정도 이해했습니다. 그 이후 제가 이해한 내용을 바탕으로 다시
써보고, 코드들도 실습해보며 이해했더니 개념의 75% 정도
이해가 가능했습니다. 여기서 모르는 개념들은 질문을 통해 알아가려 했고, 또 다른 학우분들의 활동들을 자주 찾다 보니 개념 대부분 내용을 이해할 수 있었습니다.
즉, 저는 다른 학우분들의 활동들을 매우 열심히 찾아보며 여기에 저의 활동들을 더 해서 서로
협력하는 방식으로 공부를 했습니다.
“개념에 대한 간학문적 이해와 응용실습” 이 이번 수업 저의 목표였습니다. 이를 위해 우선, 수업을 열심히 들었 습니다. 아는 내용일수록 더 꼼꼼히 듣고 메모했고, 몰랐거나 잊어버린 부분은
꼭 수식적인 부분까지 체크하고 증명해 보는 시간을 가졌습니다. 이번 수업이 다루는 범위가 전공수업에서
다루는 범위와 상당 부분 유사하다 보 니, 필기해둔 전공수업 자료들과 전공책을 참고하여 교재의 개념
옆에 연관된 개념과 응용들을 적어두는 것이 정 말 많은 도움이 되었습니다. 또한, 저는 현재 대학원 진학을 준비하고 있는데, 학습하고 있는 수리통계
서적에서 어려웠던 부분과 이 수업에서 어려웠던 부분이 겹치는 경우가 많았습니다. 이 경우 수리통계 서적과
함께 해당 개념에 대해 완벽히 공부하는 시간을 가졌습니다. 더불어, 중간고사
부분까지는 sage code로 실습을 해 볼 수 있도록 마련되어 있었는데, 저는 이 코드를 단순 실습해보는 데 그치지 않고 R software를
이용하여 똑같은 계산과정이나 알고리즘을 구현하고, 응용하여 실습해 보았습니다. 그중 질이 좋은 실습은 문의게시판에 공유하여 학우들과 함께 논의를 나누기도 했습니다. 최소제곱 해를 구하는 데 행렬연산을 사용하여 정사영을 구해 보고, 똑같은
과정을 R 내장 함수로 구해 본 것, 뉴턴 방법 을 직접
구현해 본 것, 뉴턴 방법의 오류를 구현해 본 것, 뉴턴
방법의 응용인 준뉴턴 방법을 optim()함수로 직 접 회귀계수를 최적화하는 데 활용해 본 것 등이
그 예입니다.
R software를 통해 PCA 과정을
실습해 보았습니다. 또한, Python을 통해 인공신경망을
직접 구현해 보고, 여러 활성화함수를 적용해 보는 실습을 하였습니다. 또한, 이를 단순
실습하는 데 그치지 않고 항상 수식적인 증명과 곁들였습니다. 시그모이드 함수의 좋은 성질을 직접 손으로
구해 보고, 교재에 나와 있는 가중치 업데이트 과정을 참고하여 이를 확장한 ReLu 함수에 대해서도 그라디언트를 구하여 가중치를 업데이트하는 과정을 손으로 직접 계산해보았습니다. 이처럼, 기말고사까지는 단순 실습에 그치지 않고 수식을 곁들여 보다
깊은 이해를 도모하기 위해 노력했습니다.
3. 본 강좌의 학습활동을 통하여 무엇을 배웠나?
저는 본 강좌를 통해서 함수, 벡터, 행렬, 텐서, 노름, 내적, 선형연립방정식, 가우스 소거법, RREF, 첨가행렬, 정사영, 최소제곱문제, SVD, 도함수, 미분, 극대, 극소, 최대, 최소, 경사하강법, 학습률, 그래디언트, 순열, 조합, 베이즈 정리, 확률변수, 확률분포, 기댓값, 분산, 표준편차, 공분산, 상관계수, 주성분 분석(PCA), 인공신경망, 오차역전파법(Back propagation), MNIST를 더 배우게 되었습니다. 이 개념들을 모두 설명이 가능하며 다양한 코드들로 복잡한 계산도 활용할 수 있게 되었습니다.
우선, 다른 학우분들과 질의응답을 나누며 무심코 받아들였던 지식의 ‘당연함’에 대한 의심과 그 물음에 대해 답 을 찾는 과정을 통해 내적으로 성장할 수 있는 계기가 되었습니다. 앞서 인상적인 논의로 언급했던 대각화 시 고 유값과 고유벡터 정렬, 고유벡터의
독립성에 관한 논의가 그 예입니다. 기존에는 직교대각화와 PCA를
연결하여 생각하는 경향이 있어서 고유값은 데이터의 분산을 의미하므로 당연히 분산이 큰 축부터 정렬해야 한다고 여겼 는데, 고민해 보니 대각화 과정 자체는 해당하는 고유벡터를 맞게 배열해 주기만 하면 고윳값의 배열은 크게 상 관없다는
생각이 들었습니다. 이러한 생각을 바탕으로, 마치 데카르트가
언급한 방법적 회의처럼 당연하다고 여 겼던 것들을 공부할 때마다 하나씩 의심해 보기 시작했고 이에 대한 답을 찾는 과정에서 내면적으로도, 학술적으로도 크게 성장했던 것 같습니다.
더불어, 기본적인 방법론에 대한 심도 높은 고찰을 통해 새로운 깨달음을 얻을 수 있었습니다. 일례로, 다변수함 수의 변수변환 문제의 경우 적분구간의 넓이 보정을
위해 역함수의 자코비안 행렬식을 이용하는 것으로 그저 암 기하고 있었습니다. 그러나, 이 수업을 통해 자코비안이 내포하는 의미를 좀더 심도 있게 고찰해 보는 시간을 가 졌습니다. 증명을 통해 원래 함수의 자코비안 행렬과 역함수의 자코비안 행렬이 역행렬 관계이므로 역함수가 아 닌 원래 함수의
자코비안 행렬식의 역수를 이용해도 된다는 것을 알게 되었습니다. 1장에서 언급한 것처럼, 테일러 전개의 의의를 깨닫게 된 것 역시 같은 맥락입니다.
마지막으로, 빅데이터 시대에 걸맞게 고차원 데이터를 효과적으로 차원축소하고, 좀더
복잡한 문제를 다루는 방법의 의의를 깨닫게 되었습니다. PCA는 다중공선성이 높은 데이터에 대해 효과적으로
차원을 축소해 주는 방법론입니다. 예를 들어, 100개의
관찰값과 100개의 변수가 있다고 하면 변수의 개수가 너무 많은 고차원 데이터이기 때문에 변수 간 양
혹은 음의 상관관계가 높은 변수가 존재할 수 있습니다. PCA는 이러한 데이터에 대해 효과적으로 차원을
축소해주는 방법론입니다. 따라서, 관찰값의 개수뿐 아니라
변수의 개수도 증가하고 있는 빅데이터 시대에 매우 중요함을 깨달을 수 있었습니다.
한편,
이미지 분석이나 영상 분석과 같이 좀더 복잡한 비정형 데이터에 대해서는 기존의 머신러닝 방법론들을 적용할 수 없으므로, 좀더 복잡한 비선형 함수와 더 깊은 층의 신경망을 활용해야 할 필요성이 대두됩니다. 이렇듯 신경망을 활용하여 보다 복잡한 문제에 대한 예측력을 높이고자 하는 학습 방법을 딥러닝이라고 합니다. 신경망 기반의 딥러닝은 이렇듯 좀더 복잡한 문제를 해결할 수 있다는 점에서 의의를 갖는다는 점을 깨달을 수
있었습니다.
4. 다른 동료들로부터 무엇을 배웠는가?
저는 동료들로부터 협력하며 공부하는 법을 배웠습니다. 학창시절 때까지 저는 상대평가 세상에서
살아오며 무한의 경쟁 속에서 공부했습니다. 그렇기에 정보 공유보다는 혼자서 알아내려 하고 혼자서 공부하려고
했습니다. 하지만 본 강좌를 수강하면서 저의 생각이 180도
변했습니다. 혼자 공부하기보다 다른 학우분들과 소통하며 협력을 통해 공부하면 훨씬 이해가 빠르며 더
정확하게 이해가 된다는 것을 느꼈고 배웠습니다. 실제로 저의 수학적 지식이 동료들 덕분에 많이 늘면서
몸으로 느꼈습니다.
다른 학우분들로부터 배운 것이 정말 많지만, 그중에서도 꾸준함의 미덕이 제게 가장 큰 열매였습니다. 처음 이 수업을 들을 때는 질의응답에 성실히 참여하여야 한다는 생각에 부담도 많이 되고, 잘 할 수 있을까 걱정도 되었 는데 꾸준히 참여하시는 몇몇 분들의 모습을 보며 저도 하루하루 의지를 다지며
꾸준히 참여할 수 있었습니다. 남은 주차 동안은 더욱 성실히 참여하여 학우분들과 의미 있는 논의를 더
많이 나누고 싶은 바람입니다.
질의응답 게시판에서 이루어졌던 논의를
정형화된 형태로 정리할 수 있는 꼼꼼함을 배웠습니다. 질문게시판을 보면 항상 학우 분들과의 논의를 워드
파일이나 한글을 통해 문서화하고 정리해두는 습관이 있는 분들이 있었는데, 그분들을 보며 저도 문서화와
정형화의 중요성을 다시금 깨닫게 되었습니다.
5. 새롭게 배운 내용을 실제 생활에 어떻게 적용할 것인가?
저는 앞으로 제가 가지고 있는 생각들을 친구들이나 주위 사람들에게 자주 말하는 습관을 지닐 것입니다.
"소통과 협력" 제가 본 강좌에서 느끼고 배운 것입니다. 소통과 협력이 있으면 지식의 힘은 무한히 커질 수 있으며 이러한 능력이 축적되다 보면 분명 저를 포함하여 다수의
사람에게 선한 영향을 줄 것이라고 확신합니다. 그렇기에 저는 제가 배운 것이 있다면 주위 사람들에게
알려주고, 제가 배우고자 하는 것이 있다면 주위 사람들에게 도움을 요청하여 소통과 협력을 통해 성장하는
습관을 지닐 것입니다.
저는 그리고 여기서 배운 인공지능을 위한 지식으로는 기계학습 모델을 훗날 활용하는데 사용할 것입니다. 저는
스포츠 분야에 인공지능 기술들을 활용하고 싶습니다. 스포츠 분야에 인공지능 기술들을 잘 활용하기 위해
저는 본 강좌에서 배운 기초적인 수학적 지식을 잘 활용할 것입니다.
뉴턴 방법의 한계를 개선한
준뉴턴 방법을 로지스틱회귀나 포아송회귀와 같이 link function이 있는 회귀문제 의 계수 최적화에
적용할 수 있을 것 같습니다. link function이 있는 회귀분석의 경우 일반적인 LSE, 최소제곱 예측자를 활용해 계수를 추정할 수 없는 경우
MLE(Maximum Likelihood Estimator)를 사용하는데 이때 준뉴 턴 방법으로 최적화를 시도해 볼 수 있습니다. 현재 R의 glm() 함수는
최대우도추정치를 근사할 때 뉴턴 방법과 거의
흡사한 결과를 도출하는 Fisher’s Scoring 방법을 기본 설정으로 사용하고 있는데, 준뉴턴 방법을 이용하여 최적화하면 어떤 결과를 낼지 알아보고 싶습니다.
딥러닝 모델과 PCA를
활용하여 이미지 분석에 적용해볼 수 있을 것 같습니다. 기존의 여러 분석 사례들을 찾아보니 음악의 파형을
이미지로 전환하여 이를 LSTM과 PCA를 통해 분석하는
사례가 있었습니다. 이를 협업 필터링이나 컨텐츠 기반 추천 필터링 등에 적용하여 유튜브 영상의 썸네일-영상이 시작하기 전의 화면-이미지를 분석하여 개인 맞춤형 영상을 추천해
주는 추천 알고리즘을 설계해보고 싶습니다.
6. QnA 활동에서 자신의 역할과 기여도에 대한 평가 (자신의 활동에 점수를 주고 그 이유를 적으세요.) :
점수: 96/100
어렸을 때부터 대학에 들어오기 전까지 선수
생활을 했습니다. 문과에서 수학을 배웠으며 선수 생활로 학교 정규 수업도 제대로 받기 힘든 상황이었습니다. 그렇기에 본 강좌를 바로 이해하기에는 쉽지 않았던 상황이었습니다. 그래서
제가 도움을 주기보다는 다른 학우분들의 도움을 받아 제가 성장하는 방법으로 4주 차까지 활동했습니다.
제가 동료들에게 직접 도움을 제공하지는
않았지만, 간접적으로 도움을 주었다고 생각합니다. 그 이유로는
본 강좌에서 인공지능을 위한 수학을 처음 접했지만, 최대한 문의 게시판을 활용하며 수업의 흐름을 따라가는
모습을 보여주었다고 생각하기 때문입니다. 이는 다른 학우분들도 다음에 어려운 지식을 배우게 되었을 때
소통과 협력을 통해 공부한다면 따라갈 수 있다는 희망을 조금이나마 제공했다고 생각하기 때문입니다. 그렇기에
저는 이러한 점에서 100점 만점에 96점을 주고 싶습니다.
- 93점.->95점
-QnA 게시판을 꾸준히 지켜보았고, 거의 모든 게시물이 Finalize되어 새로운 질문이 올라오지 않은 4주차를 제외하면
일주일에 최소 2회에서 많게는 8회까지 QnA에 꾸준히 참여하려 노력했습니다. 또힌, 5주차 이후에는 저의 전공인 통계 분야의 내용이 나왔기 때문에 더 활발하게 활동하였습니다. 이는 일주일에 주말을 제외하면 최소 2~3일에 한 번, 많게는 매일매일 게시판을 확인하고 참여하려 노력했기 때문입니다. 또한, 단순히 양을 늘리기 위한 수업 내용에 요약이나 교재에 나와 있는 실습보다는 더 심화된 실습과 더 정제된 댓글로
한 번 게시물을 쓸 때, 댓글을 달 때마다 심도 있고 묵직한 참여를 하려 노력했습니다. 그럼에도 저보다 더 꾸준히, 많이 질문게시판에 참여해 주신 학우분들이
분명히 계시기 때문에 중간고사까지의 저의 참여 점수는 93점 정도인 것 같습니다.
- 기말고사까지의 저의 점수는 95점입니다. 지난 주차 동안 초반보다 훨씬 더 많은 노력을 기울였고, 특히 신경망 파트는 제가 배경지식이 전혀 없는 분야였기 때문에 추가적인 학습 자료를 동원해 개인적으로 공부하는
시간도 정말 많았습니다. 어떤 방법론이 나오든 단순 원리만 이해하려 하지 않고, 항상 수식을 꼼꼼히 점검해 보고 이를 손으로 풀어 계산해보는 과정을 거쳤습니다. 초반에 감을 다소 잡지 못해서 헤맸던 과정을 제외하면, 정말 최선을
다해 이 수업에 임했다고 생각하기 때문에 마지막 저의 참여 점수는 95점입니다.
7. 다른 학생에 대한 평가
앞서 말했듯이 저는 다른 학우분들의 활동들을 열심히 보며 인공지능을 위한 수학적
지식을 쌓았습니다. 그렇기에 본 강좌를 수강하는 모든 학우분에게 고마움을 느끼고 있습니다. 모든 학우분이 열심히 활동해주었으며 제가 모르겠는 질문에도 빠르고 쉽게 답해주며 여러 활동이 저에게 큰 도움이
되었습니다. 그렇기에 인공지능을 위한 기초수학 과목을 수강하는 학우분들 모두 대단하다고 생각합니다. 그리고 소통을 활발히 해주며 저를 이곳에서 성장할 수 있도록 해주어 너무 감사합니다.
수업 요약과 sage 코드 모음을 꾸준히 업로드 하시는 분도 있었고, 질문 글에서
자주 답변을 다시는 학우분들을 보며 성 실한 참여의 중요성을 다시금 되새기고, 저보다 더 뛰어난 분들에게
많이 배워 가는 시간이었습니다. 특히, 교수님이 여신 첫 WebEx meeting에 일정상 참여하지 못했는데, 이를 다른 학우분들이
요약해주신 게시물을 보고 수업의 흐름을 전체적으로 잡을 수 있어 정말 도움이 많이 되었던 것 같습니다. 다른
학우분들의 열정을 보며 저도 매번 동기부여가 되고, 저 자신을 돌아볼 수 있는 계기가 되었던 것 같습니다.
또한, 이공계열 학우분들뿐 아니라 인문&사회계열 학우분들도 많은 것으로 알고 있는데, 배경지식이 많이 없음에도 어려운 내용을 따라가려 꾸준히 노력하시고, 질문하시는
학우분들의 열정이 정말 대단하다고 느꼈습니다. 저는 때로 이해하지 못하는 개념이 쏟아져 나오면 그냥
외워버리기도 하는데, 이번 수업의 학우분들께서는 이해가 되지 않는 개념에 대해서 꼭 이해하려고 하고, 이를 정리하여 문서화하시려는 모습을 보고 저의 과거를 반성하게 되었습니다. 특히나, 아는 학우분이 아무도 없이 이번 수업을 수강했고, 다른 학우분도
마찬가지이시리라 생각합니다. 일면식도 없음에도 서로의 질문이나 실습 결과에 귀 기울여 주시고, 답변해 주시는 훈훈한 모습을 보며 감동을 받기도 했습니다. 이번
수업의 학우분들과 함께해서 정말 행운이라고 생각합니다.
수업을 마치며, 다른
학우 분들의 모습이 제게 정말 큰 귀감이 되었던 것 같습니다. 앞서 언급했던 꾸준함과, 꼼꼼함 외에도 정말 뛰어난 학우 분들이 많으셔서 저도 개인적으로 공부하는 데 정말 도움이 많이 되었습니다. 저도 다른 학우 분들을 본받아 늘 꾸준히 의문을 가지고, 주저 없이
질문하며, 배운 것에 대해 꼼꼼히 정리하는 습관을 들여야겠다고 생각했습니다.
Self Evaluation 2.
(개인 성찰 노트 2)
|
|
인공지능을 위한 기초수학 입문 |
||||||||
|
이 름 |
박정현 |
ID |
2018 |
||||||
|
평가항목 |
전혀 아니다 |
아니다 |
약간 아니다 |
약간 그렇다 |
그렇다 |
매우 그렇다 |
|||
|
1. |
온라인-오프라인 출석을 규칙적으로 하였다. |
|
|
|
|
|
O |
||
|
2. |
QnA에 적극적으로 참여하였다. |
|
|
|
|
|
O |
||
|
3. |
QnA 내용에 적합한 질문과 응답을 하였다. |
|
|
|
|
|
O |
||
|
4. |
동료에게 도움이 되는 지식과 정보를
제공하였다. |
|
|
|
|
|
O |
||
|
5. |
다른 동료의 의견을 존중하였다. |
|
|
|
|
|
O |
||
|
6. |
QnA 운영 및 의견수렴과정에 긍정적으로 기여하였다. |
|
|
|
|
|
O |
||
|
7. |
이번 강좌의 동료와 다른 수업도 듣고
싶다. |
|
|
|
|
|
O |
||
[의견]
▶ 자체평가에 따른 잘한 점
인공지능을 위한 기초수학 과목을 수강하면서 제가 잘했다고 생각하는 점은 바로
여러 학우분의 활동들을 보며 공부를 진행했다는 점입니다. 만약 저 혼자서 본 강좌를 이해하고 공부하려
했다면 저는 아마도 50%의 이해도도 가지지 못했을 것이라고 예상합니다. 하지만 혼자 공부하지 않고, 다른 학우분들의 활동들을 보며 제가
새롭게 이해한 내용과 정리할 내용을 다시 써가며 공부했습니다. 나아가 계속해서 이해가 되지 않았던 부분들은
질문을 통해 최대한 학우분들과 소통하며 지식을 쌓아 성장하려고 노력했습니다.
- 홀로 고찰하고 반성하는
시간이 많아 배운 내용을 다시 점검하고 내적으로 한뼘 더 성장하는 계기 가 되었던 시간인 것 같습니다. 다른
학우분들의 질문에 답하기 위해 고민하는 시간이 많아지면 많 아질수록, 논의가 커질수록 받아들이게 되는
것도, 동시에 생각하게 되는 것도 많아져 지식을 단단 히 하고 내실을 다지는 데 도움이 더 많이 되었던
것 같습니다.
- 이번 강좌에서 사적으로
알고 있는 동료가 한 명도 없었고, 저 스스로 공부가 되도록 수업 내용에 서 상당히 심화된 내용을 다루려
하다 보니 처음에는 저의 게시물에 아무도 댓글을 달아주지 않을까 걱정했습니다. 하지만 다른 학우분들의
게시글에 적극적으로 코멘트를 달거나, 오랫동안 코멘트가 달리지 않을 경우 오픈채팅방에서 먼저 용기 내어
코멘트를 달아 달라고 요청드리는 등 노력을 기울이니 감사하게도 조교 분과 몇몇 학우 분들이 코멘트를 달아 주셔서 의미 있는 논의가 가능해진 경우가
많았습니다. 이렇게 걱정에 안주하지 않고 문제를 해결하려 적극적으로 노력한 점이 정말 뿌듯했습니다.
-
후반부 통계 파트에서 제가 이미 알고 있는 내용이 다수 나왔음에도 불구하고 강의를 열심히 수강하며 질의응답에 꾸준히 참여하려고 한 점이
뿌듯합니다. 저는 항상 저의 가장 큰 단점이 알고 있는 지식이 있으면 그것에 갇혀 세상을 대롱 시야로
보게 된다는 것이라고 생각해 왔는데, 이 때문에 이번 수업에서는 아는 개념도 다시 보고 하나라도 새로운
것을 깨우치려 일부러라도 노력해 왔습니다. 이에 따라 알고 있는 개념이라고 해서 방심하지 않고 지식들을
한 번 더 점검하며, 학우 분들과의 질의응답을 통해 지식 간 연결고리를 구축할 수 있어 좋았습니다.
▶ 자체평가에 따른 아쉬운 점
아쉬웠던 점은 제가 다른 학우분들에게 직접 도움을 제공하지 못했던 것입니다. 제가 본 강좌에서
선형대수학을 처음 접하게 되었으며, 미적분도 4년 전에 문과
수준에서 배운 것이 마지막이라 기억이 거의 없었습니다. 그렇기에 제가 먼저 이해하고 다른 학우분들의
질문에 답해주며 도움을 직접 도움을 제공하지 못했던 것이 아쉽습니다. 그러나 본 강좌에서도 문과생들도
수강하기 때문에 문과생 관점에서 쉽게 이해할 수 있도록 제가 이해한 내용을 바탕으로 다시 글을 써서 여러 사람에게 조금이나마 지식의 도움을 제공하려
했습니다.
즉, 수학적 지식이 부족하여 수준 높은 질문과 직접적인 도움을 학우분들에게 주지 못했던 것이
아쉽습니다. 열심히 활동하며 따라가는 저의 모습으로 간접적으로 도움을 제공하려 했습니다.
좀더 적극적으로, 더 많이 참여하지 못한 점이 아쉽습니다. 꾸준히 참여하려 노력했지만, 매일매일 QnA 게시판을 항상 확인하고 있을 수가 없어서, 며칠 간격으로 접속해 보면 다른 분들이 하신 논의 중 저도 참 여하고 싶어지는 의미 있는 논의가 이미 final ok된 경우가 있었습니다. 문의게시판을 좀더 자주 확인했더라면
의미 있는 논의에 더 많이 참여할 수 있었을 텐데 그러지 못한 점이 아쉽습니다.
또한, 조금 더 많은 부분에 대해 실습해 보지 못한 점이
아쉽습니다. 가령 신경망 기반의 모델에서 시그모이드 함수를 활성화 함수로 이용했을 때 vanishing gradient 문제를 직접 실습을 통해 알아본다거나,
PCA과정을 내장함수에 의존하지 않고 손으로 직접 구현해보는 등 해 보고 싶은 것이 정말 많았는데 시간상의 한계로 구현해보지 못한
점이 아쉬운 것 같습니다.
Ch
4장. PBL Participation/Activity Part (30점) (4장. 학습활동 참여 부분 )
중간고사 이전까지 QnA를
통하여 논의에 참여했던 내용에 자신도 참여했던 것 모두와 기타 자신이 제공한 유의미한 정보 또는 그것에 자신이 참여한 부분을 모두 아래에 정리하시면
됩니다. (20점)
1. [1주차] 김수민 자기소개 / 수강동기
목록으로 이동
수정
삭제
김수민 자기소개 / 수강동기
작성자 : 김수민(2020####78)작성일 : 7월 10일 오전 6:25
조회수 : 24
안녕하십니까 교수님.
'인공지능을위한기초수학'을 수강하고 있는 인공지능융합전공 20학번 2학년 김수민입니다.
저는 학창 시절 때 야구선수였습니다. 고등학생 때 문과에서 학업과 선수 생활을 병행하며 스포츠과학과에 입학했습니다. 성균관대에 입학 이후 저에게 새로운 꿈이 생겼고, 그 꿈은 바로 인공지능 개발자가 되는 것이었습니다. 인공지능 개발자가 되기 위해 1학년을 마치고 인공지능융합전공으로 전공진입(전과)을 했습니다. 인공지능융합전공에서 인공지능에 대한 실력을 쌓기 위해 하루하루 열심히 학교생활을 하고 있는 김수민입니다.
인공지능융합전공에 재학 중이다 보니 인공지능 모델들을 구현하는 실습들은 많이 해봤습니다. 구현의 원리를 알고 싶어 조금 더 자세히 공부하려다 보니 내용의 대부분이 수학이었습니다. 저는 문과에서 공부를 했었고, 학창 시절 때 스포츠 분야 위주로 공부를 했다 보니 수학적 지식이 부족했습니다. 수학적 지식이 부족했기에 인공지능 모델들을 이해하는데 어려움이 있었습니다. 저는 훗날 인공지능 대학원에 진학하여 실력 좋은 인공지능 개발자가 되고 싶은데 이를 위해서는 인공지능을 위한 수학적 지식이 필수라고 생각했습니다. 그렇기에 교수님의 과목을 듣고 싶어 수강했습니다. 교수님 과목에서 인공지능에 대한 기초적인 수학 지식을 쌓고 싶습니다.
많이 부족하지만 강의를 열심히 수강하고 문의게시판을 적극적으로 활용하여 많이 배워가도록 최선을 다하겠습니다.
감사합니다 교수님.
1개의 댓글
이상구(LEE SANGGU)7월 10일 오전 7:07
스포츠과학과 김수민 씨, 환영합니다. 김수민씨 같은 분이 AI 분야 로 진출하게 하는 것이 우리 강좌의 goal 이니까 부담없이 ... 김수민씨는 매일 다른 학생들의 의견이나 풀이 보면서 사소한것도 질문 하고 또 질문 하십시요. 제일 많이 질문하는 학생이 되는 것을 목표로 하면 A 받을 수 있을 것 입니다.
[Sample] Finalized by 이시원
and 정현목 and 권서영
권서영 학우님께서
ref()를 구하는 코드가 없는지에 질문해주셨고, 그에 대해서 저와 정현목 학우님께서 답변을 달며 논의 해나갔습니다.
[1주차 요약: ~가우스-조던 소거법] 김수민+김은진+권서영, 작은 질문 한개
작성자 : 권서영(2020####27)작성일 : 7월 12일 오전 2:11조회수 : 52
[1주차] 강의 내용 요약_김수민+김은진+권서영.pdf
rref()코드는 있는데 ref()코드는 없나요? 그 이유는 단순하게
ref 이 잘 사용되지 않기 때문이나요?
이시원(2021####15)7월 12일 오전 2:29
비슷하게 echelon_form() 함수를 통해서 구할 수 있는 것 같습니다.다만,Note This row
reduction does not use division if the matrix is not over a field (e.g., if the
matrix is over the integers). If you want to calculate the echelon form using
division, then use rref(), which assumes that the matrix entries are in a field
(specifically, the field of fractions of the base ring of the matrix). 이러한 문구가 있는것으로 보아 예외가 있어보이며, rref()를 사용하라는 것으로 보아 완전히 ref()를 나타내는 함수는 없는것 같습니다.
이상구(LEE SANGGU)7월 12일 오전 5:50
더구나 주어진 행렬의 rref 는 유일하지만,ref 는 무수히 많기 때문에 ...ref 코드를 별도로 만들 이유가 적습니다.
정현목(2016####80)7월 12일 오전 9:24
선형연립방정식에서 보면 rref는 그 식의 해를 찾는 것이기 때문에 유일하지만,ref의 경우에는 미지수의 계수에 따라 값이 달라지기 때문에 유일하지 않습니다.예시로 문제에서 풀이에 따라 ref가 달라지는 것을 볼 수 있습니다.유일한 ref가 없기 때문에 ref() 코드는 따로 없는 것 같습니다.
이상구(LEE SANGGU)7월 12일 오후 10:03
아래 한글로 Finalize 한
본인
파일을
업로드
하세요^^그래야 다른 학생이 여기에 미비한 부분을 추가하고 Re-Finalize by *** 하면서
본인
이름을
또
추가할
수
있으니까요^^그럼 그에 기여한 모든 4명이 같은 가점을 받을것입니다.
7. Final OK by SGLee Finalized by 오혜준, 김은진, 김수민 : 1주차 벡터의 요약과 실습, 선형대수학
Final OK by SGLee Finalized by 오혜준, 김은진, 김수민 : 1주차 벡터의 요약과 실습, 선형대수학 추가 문제 정리
작성자 : 오혜준(2016####81)작성일 : 7월 23일 오전 00:41
조회수 : 17
1주차 벡터 수업을 들으며 내용을 요약하였고, 추가적으로 선형대수학에서 문제를 풀면서 sage코드로 실습을 진행했었습니다.
추가적으로 김은진 김수민 학우분께서 언급하셨던 코시슈바르츠 부등식에 대해 공부할 수 있어 함께 추가하여 정리하였습니다.
댓글
이상구(LEE SANGGU)7월 23일 오전 8:42
OK
Finalize 벡터의 요약과 실습 + 정사영과
코시슈바르츠 내용 추가
벡터 : 힘, 속도, 가속도 등 방향과 크기를 모두 포함하는 물리량을 의미하고 개 실수의 순서쌍으로 표현 가능하다. 다음과 같이 차원 공간의 벡터를 나타냄.
X …
벡터 x의 노름 : 벡터의 크기, 길이를 의미하는데 수학적으로 다음과 같이 표현할 수 있다.
∥x∥ (x1^2+x2^2+…+xn^2)^0.5
<linear algebra and its applications, 5th ed.
1.3. vector equation. Ex 1>

Sage
code


벡터의 내적 : x … , y … 의 내적은 다음과 같이 표현할 수 있다.
x∙ y ⋯ = x y
벡터공간 : 임의의 집합 ∅에 두 연산, 덧셈과 스칼라 배가 정의되고, 2개의 기본 성질과 8개의 연산 성질을 만족하면 벡터공간을 이룬다.
부분공간 : ∅ ≠ ⊂ 가 의 부분공간(subspace)이라는
것은 벡터공간의 부분집합이면서 동시에 그 자체로 벡터공간이 되는 경우를 말한다
부분공간 test : 가 의 부분공간이 되는지 확인하려면 다음의 두 가지 조건을 만족하면 된다.
(1)
u v
∈ ∀u v ∈ (2) u ∈ ∀u ∈ ∈
<예제 실습>


일차결합 : u u… u ⊆ 의 일차결합은 적당한 스칼라 ∈가 존재하고 다음과 같은 식을 만족한다.
v u u ⋯ u
Span(일차결합들의 전체집합) : u u
… u ⊆ 의 일차결합 전체를 모은 집합을 에 의하여 생성된 부분공간이라
하고 다음과 같이 표기한다.
u u ⋯ u ∈ u∈
일차독립 : u u… u 에 대하여 u u ⋯ u
⇒ ⋯ 을 만족하면 는 일차독립이라 한다.
<linear algebra and its applications, 5th ed.
1.7. vector equation. Ex 17>
![]()

Sage code


RREF에 따라 만족하는 A가 없음을 알 수 있고 다른 코드로
표현해보자면,


False를 나타내므로 일차독립이 아님을 알 수 있다.
일차종속 : 가 일차독립이 아니면 일차종속이라 한다. 가 일차종속
이면 모두는 영은 아닌 스칼라 가 존재하고 다음 식을 만족한다.
u
u ⋯ u
<linear algebra and its applications, 5th ed.
1.7. vector equation. Ex 11>
![]()

Hand writing answer

벡터공간의 기저 : 다음을 만족하는 를 의 기저라 한다.
(1)
가 일차독립이다. (2) 〈〉
참고로 어떤 벡터의 집합에 대하여 Rn의 기저임을 보이기 위해서는 집합이 일차 독립이고 Rn을 생성함을 보이면 된다.
<예제 실습>


위의 결과를 보았을 때 행렬식이 0이 아니므로 일차독립임을 알 수 있다.
또한 R3의 벡터 X=(x,y,z)를 X=c1*x1+c2*x2+c3*x3일 때
계수행렬 [[1,1,1],[0,1,1],[0,0,1]]은 가역행렬이므로 항상 해를 갖는다.
따라서 S는 R3의 기저이다.
벡터공간의 차원 : 가 의 기저라 할 때 의 차원은 다음과 같이 정의된다.
dim
계수 : 행공간(열공간)의 차원을 행렬의 계수라 한다. 즉
rank(
)
dim Row(
)
dim Col(
).
벡터공간의 기저는 다음을 만족한다.
(1) 기저는 maximal linearly independent subset
(2) 기저는 minimal spanning subset.
<김수민, 김은진 학우 추가>


코시-슈바르츠 부등식
R^n의 임의의 벡터 x,y에 대하여 다음이 성립됨. (단, 등호는 x,y 중
하나가 다른 것의 실수배일 때만 성립)

정사영

x위로의 y의 정사영
: p= 벡터OS = proi x y
y의 벡터성분 : w =벡터SP= y – p
p가 x에 평행이므로,
p=tx이다. 이때, y-p는 x에 직교이므로

로 나타낼 수 있음
+ 점과 평면사이의 최단 거리

[Final OK by SGLee] Finalized by 정현목, 임동선, 김수민 [1주차] (가우스 조던 소거법 및 실습)
작성자 : 김수민(2020####78)작성일 : 7월 26일 오후 5:29
조회수 : 28
[Final OK by SGLee] Finalized by 정현목, 임동선, 김수민 [1주차] (가우스 조던 소거법 및 실습)
Gauss Jordan 소거법 및 실습
정현목 학우님과 임동선 학우님이 정리한 가우스 조던 소거법을 보며 이해했습니다. 정현목 학우님과 임동선 학우님이 가우스 조던 소거법에 대해 정리한 것을 보며 제가 새롭게 이해한 내용을 밑에 작성했습니다.
가우스 조던 소거법은 선형연립방정식의 첨가행렬을 RREF로 변형하여 푸는 방법이다.
RREF는 기약 행 사다리꼴이며, RREF가 되기 위해서는 아래와 같은 4가지 조건이 성립되어야 한다.
(1) 성분이 모두 0인 행이 존재하면 그 행은 행렬의 맨 아래에 위치한다.
(2) 각 행에서 처음으로 나타나는 0이 아니 성분은 1이다. 이때 이 1을 그 행의 선행성분이라고 한다.
(3) i행과 i+1행 모두에 선행성분이 존재하면 i+1행의 선행성분은 i행의 선행성분보다 오른쪽에 위치한다.
(4) 선행성분을 포함하는 열의 선행선분 외의 성분은 모두 0이다.
글로만 봐서는 잘 이해가 되지 않았는데 학우님들의 하나씩 가우스 조던 소거법들을 수기로 실습하는 것을 보고 이해가 되었습니다. 아래에는 학우님들처럼 제가 임의의 선형연립방정식을 만들어 수기로 해를 구하는 것을 실습했습니다.
A = matrix([[1, 1, 0], [2,2,1], [-3,-3,1]])
b = vector([0,0,1])
print("[A: b] =")
print(A.augment(b))
print('')
print("RREF([A: b]) =")
print(A.augment(b).rref())
단순 몇 개의 선형연립방정식은 쉽게 수기로 구할 수 있지만 본 강좌의 목표는 여러 개의 선형연립방정식도 코드를 사용하여 쉽게 구하는 것으로 알고 있습니다. 그래서 원리를 이해했기에 코드를 사용하여 4 개의 7차 방정식의 선형연립방정식도 구하는 실습을 진행했습니다.
A = matrix([[15, 3, -2, 5, 2, 3, 9, 2], [2, 12, -5, -2, 4, -3,
1, -1],
[10, -20, 5, 10, 20, 15, 5, -5], [2, 6, 66, 8, 4, 18, -3,
-24]])
b = vector([0, -1, 5, 6])
print("[A: b] =")
print(A.augment(b))
print('')
print("RREF([A: b]) =")
print(A.augment(b).rref())
print('')
print("x =", A.solve_right(b))
이렇게 다른 학우님들의 진행한 것을 보며 가우스 조던 소거법을 이해하고 실습까지 진행하여 finalized 했습니다. 다른 개념들도 다른 학우님들의 활동들을 보며 이해한 후 finalized 하여 수업의 목표까지 도달할 수 있도록 하겠습니다.
[Final OK by TA] Finalized by 정현목 [1주차] 가우스 조던 소거법 및 실습
작성자 : 임동선(2017####79)작성일 : 7월 26일 오전 11:33
조회수 : 4
Finalized by 정현목 [1주차] 가우스 조던 소거법 및 실습
작성자 : 정현목(2016####80)작성일 : 7월 10일 오전 00:43
조회수 : 49
가우스 조던 소거법을 통해 선형연립방정식을 직접 풀어보고 sage를 통해 답을 비교했습니다.
그리고 sage로 임의의 행렬의 RREF를 구하는 실습을 진행했습니다.



이지용(2021####83)7월 10일 오전 1:00
어 이거 예제에 있던 문제인가요? 며칠전에 제가 만들어서 풀어본 문제와 같네요. 잘 푸셨네요. 풀이 깔끔하고
이상구(LEE SANGGU)7월 10일 오전 5:25
A 입니다^^
이상구(LEE SANGGU)7월 12일 오전 7:31
Very good. 누가 이 질문과 답을 정리하여 Finalized by . . . 하고 제목을 주어 제일 위에 새로 계시해 보세요.
6.
[Final OK by SGLee] Re-Finalized by 권서영, 김은진, 김수민 [rref, ref 코드] 권서영 학우님의 질문
목록으로 이동
수정
삭제
[Final OK by SGLee] Re-Finalized by 권서영, 김은진, 김수민 [rref, ref 코드] 권서영 학우님의 질문과 이시원, 정현목 학우님과 교수님의 답변을 보며 알게 되었습니다.
작성자 : 김수민(2020####78)작성일 : 7월 29일 오전 10:59
조회수 : 30
[Final OK by
SGLee] Re-Finalized by 권서영, 김은진, 김수민 [rref, ref 코드] 권서영 학우님의 질문과 이시원, 정현목 학우님과 교수님의 답변을 보며 알게 되었습니다.
Final OK by
SGLee [1주차 요약: ~가우스-조던 소거법] 김수민+김은진+권서영, 작은 질문 한개
작성자 : 권서영(2020####27)작성일 : 7월 12일 오전 2:11
조회수 : 80
[1주차] 강의 내용 요약_김수민+김은진+권서영.pdf
rref()코드는 있는데 ref()코드는 없나요? 그 이유는 단순하게 ref 이 잘 사용되지 않기 때문이나요?
이시원(2021####15)7월
12일 오전
2:29
비슷하게 echelon_form() 함수를 통해서 구할 수 있는 것 같습니다. 다만,Note This row reduction does not use division if the matrix is
not over a field (e.g., if the matrix is over the integers). If you want to
calculate the echelon form using division, then use rref(), which assumes that
the matrix entries are in a field (specifically, the field of fractions of the
base ring of the matrix). 이러한 문구가 있는것으로 보아 예외가 있어보이며, rref()를 사용하라는 것으로 보아 완전히 ref()를 나타내는 함수는 없는것 같습니다.
이상구(LEE SANGGU)7월 12일 오전 5:50
더구나 주어진 행렬의 rref 는 유일하지만, ref 는 무수히 많기 때문에 ... ref 코드를 별도로 만들 이유가 적습니다.
정현목(2016####80)7월 12일 오전 9:24
선형연립방정식에서 보면 rref는 그 식의 해를 찾는 것이기 때문에 유일하지만, ref의 경우에는 미지수의 계수에 따라 값이 달라지기 때문에 유일하지 않습니다. 예시로 문제에서 풀이에 따라 ref가 달라지는 것을 볼 수 있습니다. 유일한 ref가 없기 때문에 ref() 코드는 따로 없는 것 같습니다.
이상구(LEE SANGGU)7월 12일 오후 10:03
아래 한글로 Finalize 한 본인 파일을 업로드 하세요^^ 그래야 다른 학생이 여기에 미비한 부분을 추가하고 Re-Finalize by *** 하면서 본인 이름을 또 추가할 수 있으니까요^^ 그럼 그에 기여한 모든 4명이 같은 가점을 받을것입니다.
김수민(2020####78)7월 29일 오전 10:56
권서영 학우님의 rref에 대한 질문과 이시원, 정현목 학우님과 이상구 교수님의 답변을 보며 rref 코드를 사용하는지 알게되었습니다. 주어진 선형연립방정식에서 rref는 해가 유일하지만 ref는 그렇지 않기 때문에 rref를 사용하게 된다는 것을 알게 되었습니다.
댓글
이상구(LEE SANGGU)7월 29일 오전 11:33
[Final OK by SGLee]
3. [ Final OK by SGLee
] Re-Finalized by 문가은, 박수연, 정형록, 김수민 (가역행렬, 역행렬 실습)
[ Final OK by SGLee ] Re-Finalized by 문가은, 박수연, 정형록, 김수민 (가역행렬, 역행렬 실습)
작성자 : 김수민(2020####78)작성일 : 7월 27일 오전 4:35
조회수 : 18
문가은, 박수연, 정형록 학우님들의 가역행렬에 역행렬에 대한 코드 실습을 보며 가역행렬과 역행렬을 이해했습니다. 다른 학우분들의 코드를 보며 제가 이해한 것을 중심적으로 아래에 작성하겠습니다.
가역행렬은 n차의 정사각행렬 A에 대하여 AB=In=BA 만족하는 행렬 B가 존재하는 경우에 A행렬을 말한다. 그리고 이때 B는 A의 역행렬이 된다. 다만 B가 존재하지 않는 경우에는 A 행렬을 비가역행렬이라고 한다.
특정 행렬이 가역인지 비가역행렬인지 구분하는 방법은 코드로 A.is_invertible()을 통해 n차 행렬도 쉽게 구할 수 있다. (이는 다른 학우분들의 실습 코드에 자세하게 구현되어 있으며 덕분에 쉽게 이해가 가능했습니다.)
가역행렬일 경우에만 역행렬을 A.inverse() 코드 실현이 가능하기에 행렬이 가역인지 비가역인지 확인이 필요하다. 만약 A가 비가역행렬이면 A의 역행렬은 존재하지 않는다. 코드를 활용하면 n차원의 행렬도 빠르게 가역인지 확인한 후 역행렬까지 쉽게 구할 수 있다.
가역행렬과 역행렬의 관계에 대해 이해를 정확히 하지 못하고 있었지만 학우분들의 코드 덕분에 바로 이해할 수 있었습니다. 그리고 n차원 행렬도 코드를 통해 가역을 확인하고, 역행렬까지 빠르게 구할 수 있다는 점이 유익했습니다.
[Final ok by SGLee] Finalized by 문가은, 박수연, 정형록 (가역행렬 실습)
작성자 : 문가은(2020####34)작성일 : 7월 23일 오후 6:07
조회수 : 13
가역행렬과 역행렬에 관련된 실습들을 진행하고, 다른 학우분들의 실습 내용을 참고하여 종합해 보았습니다.
1. 행렬을 random 하게 생성한 후, 그 행렬이 가역행렬인지 판단

2-1. 가역행렬인지 확인 후, 역행렬을 구하는 실습


2-2 가역행렬이 맞는지 확인 후, A^(-1), AB(B는 A의 역행렬), kA, A^n 이 4가지 식이 모두 가역이라는 것을 확인하는 실습. 우선 가역행렬인 A에 대한 역행렬 B를 구한 후 위의 4식의 가역인지 아닌지 판단했습니다.

3. 교안에 있었던 가역행렬의 3가지 정리에 대해 직접 확인해 보고자 코드를 참고해 5차 행렬으로 실습해 보았습니다.


가역행렬과 역행렬에 대해 헷갈리는 부분들이 있었고, 처음에 코드를 작성할 때 잘못 작성하여 오류가 발생하기도 했습니다. 하지만 학우들의 코드를 참고하고, 다른 방식으로도 문제를 해결하고 정리를 확인하는 과정을 학습하며, 가역행렬과 역행렬에 대한 개념을 확실히 하고 코드를 다시 수정해서 정확히 작성할 수 있었습니다.
댓글
이상구(LEE SANGGU)7월 23일 오후 6:32
Good^^
4. [ Final OK by SGLee ]
Refinalized by 정현목, 임동선, 김수민, 이상구 교수님 [1주차] 질문 to Finalized by 정현목, 임동선 [1주차] 최소제곱해, QR분해 및 실습, Why is QR factorization useful
and important?
[ Final OK by SGLee ] Refinalized by 정현목, 임동선, 김수민, 이상구 교수님 [1주차] 질문 to Finalized by 정현목, 임동선 [1주차] 최소제곱해, QR분해 및 실습, Why is QR factorization useful and important?
작성자 : 김수민(2020####78)작성일 : 7월 27일 오전 6:24
조회수 : 26
최소제곱해와 QR 분해를 이해하기 위해 "Finalized by 정현목, 임동선 [1주차] 최소제곱해, QR분해 및 실습" 학우분들의 실습 정리본을 보다가 헷갈리는 것이 있어 질문드립니다.
최소제곱해와 QR분해와의 차이점을 잘 모르겠습니다. 강의에서는 "QR 분해는 선형연립방정식의 최소제곱해를 역행렬을 구하지 않고 손쉽게 수할 수 있도록 해주므로 다양한 계산이 필요한 컴퓨터 알고리즘의 연구에서 가장 중요한 도구로 여겨진다."라고 나와있습니다.
여기서 QR분해가 역행렬을 구하지 않고 해를 구할 수 있다는 것이 왜 컴퓨터 알고리즘 연구에서 장점을 되는지 잘 이해가 안됩니다. 그리고 최소제곱해와 QR분해의 차이점이 무엇이 더 있는지 궁금합니다.
[Final OK by TA]
Finalized by 정현목 [1주차] 최소제곱해, QR분해 및 실습
작성자 : 임동선(2017####79)작성일 : 7월 26일 오전 11:32
조회수 : 7


이상구(LEE SANGGU)7월 12일 오전 7:16
1. QR분해 의 장점은 무궁무진 합니다. https://math.stackexchange.com/questions/198479/why-is-qr-factorization-useful-and-important
Why
is QR factorization useful and important?
QR-factorisation
can, for example, be used to solve linear least squares approximation problems
as follows: Given
n≤mn≤m, A∈Matm,n(R)A∈Matm,n(R) with full rank nn, b∈Rmb∈Rm
find x∈Rn:∥Ax−b∥2=minfind x∈Rn:‖Ax−b‖2=min
Computing the QR-factorisation of AA, we write A=QRA=QR with Q∈O(m)Q∈O(m), R∈Matm,n(R)R∈Matm,n(R) upper triangular. Now, as
the 22-norm is invariant under multiplication with orthogonal
matrices,
∥Ax−b∥2=∥∥Q−1Ax−Q−1b∥∥2=∥∥Rx−Q−1b∥∥2‖Ax−b‖2=‖Q−1Ax−Q−1b‖2=‖Rx−Q−1b‖2
As m≥nm≥n, RR is of the form
R=(R′0)R=(R′0) with R′∈Matn(R)R′∈Matn(R) upper triangular.
Writing Q−1b=(y1y2),x=(x1x2)∈Rn×Rm−nQ−1b=(y1y2),x=(x1x2)∈Rn×Rm−n, we have
∥Ax−b∥2=∥Rx1−y1∥2+∥y2∥2
√‖Ax−b‖2=‖Rx1−y1‖2+‖y2‖2
as rankR′=rankA=nrankR′=rankA=n, R′R′ is invertible and hence we need x=R′−1y1x=R′−1y1 for minimisation.
Another thing, QR
factorisation can be useful for is numerical approximation of eigenvectors and
-values of a symmetric matrix AA. Let A0=AA0=A, Ak+1=RkQkAk+1=RkQk with Ak=QkRkAk=QkRk the QR-decomposition
of AA. One can show that Qk→QQk→Q and Rk→ΛRk→Λ where ΛΛ contains the eigenvalues
of AA along its diagonal
and QQ the eigenvectors in its
columns.
댓글
이상구(LEE SANGGU)7월 27일 오전 7:57
QR분해 의 장점은 무궁무진 합니다. 여기서는 QR분해를 이용한 최소제곱해 의 해법을 배웠으므로 ... 위와 같이 느낀 듯 하네요
이상구(LEE SANGGU)7월 27일 오전 8:02
1.QR분해 의 장점은 무궁무진 합니다.
https://math.stackexchange.com/questions/198479/why-is-qr-factorization-useful-and-important
Why is QR factorization useful and important? Asked 8 years, 10 months ago Active
4 years, 4 months ago Viewed 5k times 2. 여기서는 QR분해를 이용한 최소제곱해 의 해법을 배웠으므로 ... 위와 같이 느낀 듯 하네요. 3. QR 분해에 대해서는 나중에 학습 더 하시고 4. QR 이 뭔지 알았으면 우리는 이제 4주 더 남았으니까 바로 math for AI 에 필수인 1. SVD 2. GDM 3. 공분산행렬 4.PCA 5. 오차역전파법 으로 방향을 잡고 전진하세요
김수민(2020####78)7월 27일 오후 2:36
네 알겠습니다 교수님. 그럼 최소제곱해와 QR분해까지 구하는 방법까지 우선적으로 공부하고, SVD, GDM, 공분행산렬, PCA, 오차역전파법을 이해하는 것을 목표로 공부하겠습니다!!
이상구(LEE SANGGU)7월 27일 오후 11:07
[ Final OK by SGLee ]
5. [Final OK by TA]
Finalized by 정승민, 김수민 [1주차] (벡터, 정사영)
Finalized by 정승민, 김수민 [1주차] (벡터, 정사영)
작성자 : 김수민(2020####78)작성일 : 7월 26일 오후 3:16
조회수 : 21
[1주차]
벡터.docx
제가 1주차의 내용을 제대로 fianlized하지 않은 것 같아 처음부터 제대로 finalize 해서 빨리 make up 하려고 정승민 학우님의 요약본을 제가 이해한 방향으로 fianlized 하려고 합니다.
선형대수학을 처음 접하고 벡터도 처음 접하게 되어 이 부분이 시작이지만 이해하는데 굉장히 오래 걸렸습니다. 학기 초반에는 어떻게든 혼자 이해해보려고 했던 것이 더 오래걸리게 만들었던 것 같습니다. 하지만 이제는 다른 학우님의 요약본, 질문, 실습 코드 정리본을 보며 소통을 통해 빨리 개념을 이해하려고 합니다. 실제로 이 방법이 저에게 더 정확하고 빠르게 이해하는데 도움이 되었습니다.
아래에는 정승민 학우님의 ‘벡터 파트까지 요약’을 보며 제가 이해한 방향으로 finalize하여 정리했습니다.
최소제곱해는 Linaear Regression 모델을 구현하는데 사용된다. 대부분의 최소 제곱 문제는 QR 분해를 이용하며 QR 분해는 Gram-Schmidt
정규직규화를 이해해야 이용 가능하다. 그리고 이러한 것들의 기본은 벡터의 개념에서부터 시작한다. 인공지능을 위한 기초수학 1주차에서는 선형대수학의 기초 개념들부터 이해하기 시작하여 최소제곱해를 이해하는 것이 목표이다. (이처럼 목표를 확실히 인지하고 공부를 진행하는 것이 원동력이 되며 공부의 흐름을 잡기 더 수월했습니다.)
벡터: 힘, 속도, 가속도 등과 같이 크기와 방향을 함께 가지는 양이다. 스칼라는 방향이 주어지지 않는다.
벡터의 덧셈: 사실 이 부분이 벡터의 개념을 이해하는데 제일 이해하기 힘들었다. 하지만 정승민 학우님의 요약본을 보며 이해할 수 있었다. 평행사변형의 법칙을 보며 벡터와 스칼라의 차이점을 정확히 알게 되었다.
벡터의 스칼라배:
행렬을 처음 접하기 때문에 여기서도 막혔지만 선형대수학 유튜브 강의와 구글을 찾아보며 알게 되었다. 하지만 다음부터는 문의게시판의 질문을 활용하여 알아갈 생각이다. 소통을 통해 얻는 힘이 더 크다는 것을 느꼈기 때문이다.
정승민 학우님의 요약본에 너무 잘 설명이 되어있어 개념을 내가 더 설명할 부분은 없으며, n차원 행렬에서도 벡터의 스칼라배가 가능하다는 것을 알게 되었다.
두 벡터 사이의 거리: 이는 a와 b라는 벡터가 있을 때 (a-b).norm()코드로 n차원 벡터의 거리도 쉽게 구할 수 있었다. 이는 밑에 실습으로 보여주겠다. 6차원 행렬을 구현하여 실습을 진행했다.
a = vector([4,5,2,9,4,3])
b = vector([2,9,1,5,6,7])
print("A NORM:", a.norm())
print("B NORM:", b.norm())
print((a-b).norm())
정사영: 지금까지 벡터에 대해 이해를 해서 정사영을 쉽게 이해 가능했다. 추가로 정승민 학우의 요약본이 너무 깔끔하게 정리되어 있어서 더욱 수월하게 이해가 되었다. 정사영은 특히 벡터의 평행사변형의 법칙을 참고하여 이해했더니 더 좋았다.
기존의 벡터 개념은 없는 상태에서 벡터 개념을 알고 보니 정사영은 신기한 세상이었다.
개념을 이해했으니 7차원 행렬에서의 정사영을 구하는 실습을 진행해 보았다.
v = vector([5, 5, -6, 2, -9, 3, 1])
n = vector([1, 5, 1, -7, -4, 8, -13])
d = -17
vn = v.inner_product(n)
nn = n.norm()
Dist = abs(vn + d)/nn
print("P =", v)
print('')
print("n =", n)
print('')
print(Dist)
이렇게 학우님들의 활동을 이해하면서 finalized 하고, 빨리 make up하여 이해하도록 하겠습니다.
[1주차] 벡터 파트까지 요약
작성자 : 정승민(2021####76)작성일 : 7월 16일 오후 11:40
조회수 : 39
행렬을 배우지 않았아서 벡터 -> 행렬로 다루는 것이나 행렬 -> 벡터로 다루는 것이 익숙치 않아서 고등학교 과정부터 섞어서 요약해보았습니다.
벡터까지 요약했는데 행렬부분도 요약해서
계속 upgrade 시키면서 7주차에는 저만의 책을 만들어 보려고 합니다.
이상구(LEE SANGGU)7월 17일 오전 5:49
굿^^
이전
다음
2개의 댓글
이상구(LEE SANGGU)7월 26일 오후 4:13
김수민씨, 그간 이해 못 한 부분이 있다면 ... 조만간 8주차에 업로드한 이번에 강의한 복습 내용 참고 하시면 쉽게 이해 될 것입니다. 8주차 (복습: 출결 대상 아님) Math4AI 수학과 코딩 (초보용) 출결 대상 아님 Math4AI 다항식의 해를 구하는 방법 (초보용) 출결 대상 아님 Math4AI 행렬과 Tensor (초보용) 출결 대상 아님 Math4AI 데이터 사이의 유사도 (거리기준) (초보용) 출결 대상 아님 Math4AI 데이터 사이의 코사인유사도 (각도기준) (초보용) 출결 대상 아님 Math4AI 정사영과 최소제곱해 (초보용) 출결 대상 아님 Math4AI 핵(kernel)과 치역(range) (초보용) Math4AI 특잇값분해(SVD) (초보용) Math4AI 미분과 적분 (복습) (초보용) Math4AI 다변수함수의 편도함수와 Gradient (초보용) Math4AI 경사하강법 (초보용) 출결 대상 아님 Math4AI 미분과 경사하강법 [복습-8분] (초보용) 출결 대상 아님 ...
김수민(2020####78)7월 26일 오후 4:21
네 교수님 감사합니다!!
Re-Finalized by 문가은, 박수연, 정형록, 김수민, 정진웅(전치행렬, 가역행렬, 역행렬 실습)
작성자 : 정진웅(2021####60)작성일 : 7월 27일 오후 2:00
조회수 : 3
다른 학우분들의 가역행렬, 역행렬 실습에 제가 진행해본 실습 과정을 추가하고 전치행렬 내용도 추가해 보았습니다.
(추가 실습)






-----------------------------------------------------------------------------------------
Re-Finalized by 문가은, 박수연, 정형록, 김수민 (가역행렬, 역행렬 실습)
작성자 : 김수민(2020####78)작성일 : 7월 27일 오전 4:35
조회수 : 11
문가은, 박수연, 정형록 학우님들의 가역행렬에 역행렬에 대한 코드 실습을 보며 가역행렬과 역행렬을 이해했습니다. 다른 학우분들의 코드를 보며 제가 이해한 것을 중심적으로 아래에 작성하겠습니다.
가역행렬은 n차의 정사각행렬 A에 대하여 AB=In=BA 만족하는 행렬 B가 존재하는 경우에 A행렬을 말한다. 그리고 이때 B는 A의 역행렬이 된다. 다만 B가 존재하지 않는 경우에는 A 행렬을 비가역행렬이라고 한다.
특정 행렬이 가역인지 비가역행렬인지 구분하는 방법은 코드로
A.is_invertible()을 통해 n차 행렬도 쉽게 구할 수 있다. (이는 다른 학우분들의 실습 코드에 자세하게 구현되어 있으며 덕분에 쉽게 이해가 가능했습니다.)
가역행렬일 경우에만 역행렬을 A.inverse() 코드 실현이 가능하기에 행렬이 가역인지 비가역인지 확인이 필요하다. 만약 A가 비가역행렬이면 A의 역행렬은 존재하지 않는다. 코드를 활용하면 n차원의 행렬도 빠르게 가역인지 확인한 후 역행렬까지 쉽게 구할 수 있다.
가역행렬과 역행렬의 관계에 대해 이해를 정확히 하지 못하고 있었지만 학우분들의 코드 덕분에 바로 이해할 수 있었습니다. 그리고 n차원 행렬도 코드를 통해 가역을 확인하고, 역행렬까지 빠르게 구할 수 있다는 점이 유익했습니다.
목록으로 이동
[Final ok by SGLee] Finalized by 문가은, 박수연, 정형록 (가역행렬 실습)
작성자 : 문가은(2020####34)작성일 : 7월 23일 오후 6:07
조회수 : 13
가역행렬과 역행렬에 관련된 실습들을 진행하고, 다른 학우분들의 실습 내용을 참고하여 종합해 보았습니다.
1. 행렬을 random 하게 생성한 후, 그 행렬이 가역행렬인지 판단

2-1. 가역행렬인지 확인 후, 역행렬을 구하는 실습


2-2 가역행렬이 맞는지 확인 후, A^(-1), AB(B는 A의 역행렬), kA, A^n 이 4가지 식이 모두 가역이라는 것을 확인하는 실습. 우선 가역행렬인 A에 대한 역행렬 B를 구한 후 위의 4식의 가역인지 아닌지 판단했습니다.

3. 교안에 있었던 가역행렬의 3가지 정리에 대해 직접 확인해 보고자 코드를 참고해 5차 행렬으로 실습해 보았습니다.


가역행렬과 역행렬에 대해 헷갈리는 부분들이 있었고, 처음에 코드를 작성할 때 잘못 작성하여 오류가 발생하기도 했습니다. 하지만 학우들의 코드를 참고하고, 다른 방식으로도 문제를 해결하고 정리를 확인하는 과정을 학습하며, 가역행렬과 역행렬에 대한 개념을 확실히 하고 코드를 다시 수정해서 정확히 작성할 수 있었습니다.
9. Final OK by SGLee [1주차 요약: ~가우스-조던
소거법] 김수민+김은진+권서영, 작은 질문 한개
목록으로 이동
Final OK by SGLee [1주차 요약: ~가우스-조던 소거법] 김수민+김은진+권서영, 작은 질문 한개
작성자 : 권서영(2020####27)작성일 : 7월 12일 오전 2:11
조회수 : 86
[1주차]
강의 내용 요약_김수민+김은진+권서영.pdf
rref()코드는 있는데 ref()코드는 없나요? 그 이유는 단순하게 ref 이 잘 사용되지 않기 때문이나요?
이시원(2021####15)7월 12일 오전 2:29
비슷하게 echelon_form() 함수를 통해서 구할 수 있는 것 같습니다. 다만,Note This row reduction does not use
division if the matrix is not over a field (e.g., if the matrix is over the
integers). If you want to calculate the echelon form using division, then use
rref(), which assumes that the matrix entries are in a field (specifically, the
field of fractions of the base ring of the matrix). 이러한 문구가 있는것으로 보아 예외가 있어보이며, rref()를 사용하라는 것으로 보아 완전히 ref()를 나타내는 함수는 없는것 같습니다.
이상구(LEE SANGGU)7월 12일 오전 5:50
더구나 주어진 행렬의 rref 는 유일하지만, ref 는 무수히 많기 때문에 ... ref 코드를 별도로 만들 이유가 적습니다.
정현목(2016####80)7월 12일 오전 9:24
선형연립방정식에서 보면 rref는 그 식의 해를 찾는 것이기 때문에 유일하지만, ref의 경우에는 미지수의 계수에 따라 값이 달라지기 때문에 유일하지 않습니다. 예시로 문제에서 풀이에 따라 ref가 달라지는 것을 볼 수 있습니다. 유일한 ref가 없기 때문에 ref() 코드는 따로 없는 것 같습니다.
이상구(LEE SANGGU)7월 12일 오후 10:03
아래 한글로 Finalize 한 본인 파일을 업로드 하세요^^ 그래야 다른 학생이 여기에 미비한 부분을 추가하고 Re-Finalize
by *** 하면서 본인 이름을 또 추가할 수 있으니까요^^ 그럼 그에 기여한 모든 4명이 같은 가점을 받을것입니다.
이전
다음
5개의 댓글
이시원(2021####15)7월 12일 오전 2:29
비슷하게 echelon_form() 함수를 통해서 구할 수 있는 것 같습니다. 다만,Note This row reduction does not use
division if the matrix is not over a field (e.g., if the matrix is over the
integers). If you want to calculate the echelon form using division, then use
rref(), which assumes that the matrix entries are in a field (specifically, the
field of fractions of the base ring of the matrix). 이러한 문구가 있는것으로 보아 예외가 있어보이며, rref()를 사용하라는 것으로 보아 완전히 ref()를 나타내는 함수는 없는것 같습니다.
이상구(LEE SANGGU)7월 12일 오전 5:50
더구나 주어진 행렬의 rref 는 유일하지만, ref 는 무수히 많기 때문에 ... ref 코드를 별도로 만들 이유가 적습니다.
정현목(2016####80)7월 12일 오전 9:24
선형연립방정식에서 보면 rref는 그 식의 해를 찾는 것이기 때문에 유일하지만, ref의 경우에는 미지수의 계수에 따라 값이 달라지기 때문에 유일하지 않습니다. 예시로 문제에서 풀이에 따라 ref가 달라지는 것을 볼 수 있습니다. 유일한 ref가 없기 때문에 ref() 코드는 따로 없는 것 같습니다.
이상구(LEE SANGGU)7월 12일 오후 10:03
아래 한글로 Finalize 한 본인 파일을 업로드 하세요^^ 그래야 다른 학생이 여기에 미비한 부분을 추가하고 Re-Finalize
by *** 하면서 본인 이름을 또 추가할 수 있으니까요^^ 그럼 그에 기여한 모든 4명이 같은 가점을 받을것입니다.
김수민(2020####78)7월 29일 오전 10:56
권서영 학우님의 rref에 대한 질문과 이시원, 정현목 학우님과 이상 교수님의 답변을 보며 rref 코드를 사용하는지 알게되었습니다. 주어진 선형연립방정식에서 rref는 해가 유일하지만 ref는 그렇지 않기 때문에 rref를 사용하게 된다는 것을 알게 되었습니다.
######1.
Comment : R software를 통해 고차원 벡터(n차원 벡터)의 n-1초평면으로의 정사영을 구하는 회귀분석 문제를 풀어 보았습니다. 이를
통해 벡터와 차원, 정사영에 대해 더더욱 잘 이해할 수 있게 되었고,
저의 전공과 수업에서 배운 것을 연관시키는 경험을 할 수 있었습니다.
Final OK by SGLee [1 주차][실습] R software 로 최소제곱해 구하기
작성자 : 박정현(2018####21)작성일 : 7월 22일 오후 2:29
조회수 : 28
Final OK by SGLee : R 코드로 최소제곱해 구하기 [1 주차][실습] R software 로 최소제곱해 구하기 작성자 : 박정현(2018####21)작성일 : 7월 9일 오후 4:11
조회수 : 16
교수님께서 좀더 큰 차원의
공간에서 정사영을 활용해 보라고 피드백 주셔서, R software 내장 데이터인 mtcars 데이터를 이용해
y 벡터의 8 차원
input space 로의 projection 문제인 다중선형회귀 코드를 실습해 보았습니다 ~^^
교재에 sage 와
python 코드는 잘 수록되어 있기 때문에,
R 코드로도 고차원 행렬의 transpose 와 inverse 구하기, 그리고 정사영을 활용한
최소제곱해 구하기에 대해 궁금하신 분들이 있을 것 같아 R 코드로
실습한 결과를 공유합니다 ^^
X'X 가 full rank 이면 항상 invertible 하므로(첨언하자면, 다중공선성이 있는 경우 full rank 가 성립하지 않습니다..) 교수님께서 설명해 주신 form 인 X'(X'X)^-1 X'Y 로
아무리 큰 행렬에 대해서도
최소제곱문제 arg min B ||Y - XB|| ^2 를 minimize 하는 계수 B 와 최소제곱해
Y hat 을 항상 구할 수 있습니다~^^
|
head(mtcars) |
|
## mpg cyl disp hp drat wt qsec vs am gear carb |
|
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 |
|
##
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 |
|
##
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 |
|
##
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3
1 |
|
##
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 |
|
##
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 |
|
data <- mtcars %>% select(-c(vs,am)) # y
= mpg(miles per gallon),에 대해 다른 변수들을 X 로 하여 span(X) 위로의 최소제곱추정량(LSE), 즉 최적의 Y hat 을 찾는 문제 -> 다중선형회귀 # 본 문제에서 input matrix 는 intercept 를 위해 1 이 포함되어 있고, X 변수는 8 개이므로 y
hat 은
8 차원 초평면 위로의 projection 임 |
![]()
|
## |
(Intercept) 17.88964 |
17.81996 |
1.004 |
0.3259 |
|
## |
cyl -0.41460 |
0.95765 |
-0.433 |
0.6691 |
|
## |
disp 0.01293 |
0.01758 |
0.736 |
0.4694 |
|
## |
hp -0.02085 |
0.02072 |
-1.006 |
0.3248 |
|
## |
drat 1.10110 |
1.59806 |
0.689 |
0.4977 |
|
## |
wt -3.92065 |
1.86174 |
-2.106 |
0.0463 * |
|
## qsec 0.54146 0.62122 0.872 0.3924 ## gear 1.23321 1.40238 0.879 0.3883 ## carb -0.25510 0.81563 -0.313 0.7573
## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 '
' 1 ## ## Residual standard error: 2.622 on 23 degrees of freedom ## Multiple R-squared: 0.8596, Adjusted R-squared: 0.8107 ## F-statistic: 17.6 on 8
and 23 DF, p-value: 4.226e-08 fit$fitted.values #X(X'X)^-1X'Y, 즉 LSE 로 구한 Y
hat ## Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4
Drive ## 22.02487 21.32832 25.58658
21.20219 ## Hornet Sportabout Valiant Duster 360 Merc 240D ## 17.96643 19.98909 14.91428
23.64376 ## Merc 230 Merc 280 Merc 280C Merc 450SE ## 24.85975 19.65549 19.98037
14.16584 ## Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental ## 15.60715 15.62770 11.46038
10.40496 ## Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla ## 10.17998 26.95996 29.67308
28.70054 ## Toyota Corona Dodge Challenger AMC Javelin Camaro Z28 ## 24.45084 17.12020 17.93465
14.06612 ## Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa ## 16.83504
27.69418 27.07562
28.13087 ## Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E ## 18.82299 19.78252 13.41285 23.64339 |
2. 코딩을 통한 계산으로 직접
최소제곱해 구하기
|
# (2) 코딩을 통한 계산으로 직접 LSE 구해보기 Y = data %>% select(mpg) %>% as.matrix() X = cbind(1,data %>% select(-mpg) %>% as.matrix()) #mpg 를 제외한 모든 변수들 beta
=
solve(t(X)%*%X)%*%t(X)%*%Y |
beta #추정된 계수
## mpg
## 17.88963741
## cyl -0.41459575
## disp 0.01293240
## hp -0.02084886
## drat 1.10109551
## wt -3.92064847
## qsec 0.54145693
## gear 1.23321026
##
carb -0.25509911
coef(fit) #
lm() 함수로 구한 것과 동일함
## (Intercept) cyl disp hp drat wt
## 17.88963741 -0.41459575 0.01293240 -0.02084886 1.10109551 -3.92064847
## qsec gear carb
## 0.54145693 1.23321026 -0.25509911
X%*%beta # y
hat(proj y onto span X)
## mpg
## Mazda RX4 22.02487
## Mazda RX4
Wag 21.32832
## Datsun 710 25.58658
## Hornet 4
Drive 21.20219
## Hornet Sportabout 17.96643
|
## |
Toyota Corona |
24.45084 |
|||
|
## |
Dodge
Challenger |
17.12020 |
|||
|
## |
AMC
Javelin |
17.93465 |
|||
|
## |
Camaro
Z28 |
14.06612 |
|||
|
## |
Pontiac
Firebird |
16.83504 |
|||
|
## |
Fiat
X1-9 |
27.69418 |
|||
|
## |
Porsche
914-2 |
27.07562 |
|||
|
## |
Lotus
Europa |
28.13087 |
|||
|
## |
Ford
Pantera L |
18.82299 |
|||
|
## |
Ferrari
Dino |
19.78252 |
|||
|
## |
Maserati
Bora |
13.41285 |
|||
|
## |
Volvo
142E |
23.64339 |
|||
|
fit$fitted.values #
lm() 함수로 구한 것과 동일 |
|||||
|
## |
|
Mazda RX4 |
Mazda RX4 Wag |
Datsun 710 |
Hornet 4
Drive |
|
## |
|
22.02487 |
21.32832 |
25.58658 |
21.20219 |
|
## |
Hornet |
Sportabout |
Valiant |
Duster
360 |
Merc
240D |
|
## |
|
17.96643 |
19.98909 |
14.91428 |
23.64376 |
|
## ## |
|
Merc 230 24.85975 |
Merc 280 19.65549 |
Merc
280C 19.98037 |
Merc
450SE 14.16584 |
## Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental
## 15.60715 15.62770 11.46038 10.40496
## Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla ## 10.17998 26.95996 29.67308
28.70054
## Toyota Corona Dodge Challenger AMC Javelin Camaro Z28 ## 24.45084 17.12020 17.93465
14.06612
## Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa
## 16.83504 27.69418 27.07562 28.13087
## Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E ## 18.82299 19.78252 13.41285
23.64339
![]()
12. Final OK by SGLee Fianlized by 권서영, 김은진, 김수민 [2주차] 선형변환, 핵, 치역 요약
목록으로 이동
수정
삭제
Final OK by SGLee
Fianlized by 권서영, 김은진, 김수민 [2주차] 선형변환, 핵, 치역 요약
작성자 : 김수민(2020####78)작성일 : 7월 27일 오후 4:12
조회수 : 19
선형변환과 핵과 치역에 대한 이해를 김은진, 권서영 학우분들의 요약본을 보며 이해했습니다. 정리가 매우 잘 되어있어서 이해하기에 너무 좋았습니다. 아래에는 제가 이해한 것을 더욱 간략하게 소개하고 finalized 하겠습니다. 그리고 함수를 행렬로 변환할 때 최소제곱해 구하기 등 n차원의 복잡한 것이라도 쉽게 해결할 수 있다는 것에 신기했습니다.
이처럼 강의를 듣고 권서영, 김은진 학우분들의 요약본까지 참고하여 보니 확실하게 이해가 되었습니다. n차원 함수도 전사, 단사, 전단사 확인이 가능하며, 치역도 쉽게 구할 수 있으며, kernel도 코드를 통해 쉽게 확인이 가능하다는 것을 요약본을 통해 실습해 봤으며 유익했습니다.
목록으로 이동
[2주차] 선형변환, 핵, 치역 요약 (권서영,김은진)
작성자 : 김은진(2020####41)작성일 : 7월 16일 오후 4:47
조회수 : 20
권서영 학우님의 요약본에 내용 및 코드를 추가하여 완성하였습니다.
2주차 선형변환, 핵, 치역 요약(코드 포함) - 권서영+김은진-1.docx
댓글
이상구(LEE SANGGU)7월 16일 오후 7:11
Good job
선형변환, 핵, 치역
선형변환과 핵과 치역에 대한 이해를 김은진, 권서영 학우분들의 요약본을 보며 이해했습니다. 정리가 매우 잘 되어있어서 이해하기에 너무 좋았습니다. 아래에는 제가 이해한 것을 더욱 간략하게 소개하고 finalized
하겠습니다. 그리고 함수를 행렬로 변환할 때 최소제곱해 구하기 등 n차원의 복잡한 것이라도 쉽게 해결할 수 있다는 것에 신기했습니다.
변환: 입력과 출력이 모두 벡터인 함수
행렬변환: 원점이 변하지 않고, 점들 사이의 거리가 여전히 평행하고 일정한 변환
선형변환:
두 조건을 만족하는 경우
선형연산자: R^n에서 R^n 자신으로의 선형변환을 R^n 위의 선형연산자라 한다.
기본단위벡터: 표준기저 (e1, e2, e3 ,…, en)
표준행렬: 기본단위벡터를 순서대로 대입하여 열을 구함으로 쉽게 만들 수 있음.

핵: T: Rn -> Rm 이 선형변환. T에 의한 상이 0이 되는 Rn
안의 벡터 전체의 집합
단사: 일대일 함수이다.
치역: 선형변환 T에 대해 임의의 v의 상 T(v) 전제 집합을 T의 치역이라 한다.
전사: 모든 원소가 정의역에 대응 -> 그 자체로 치역이 된다.
전단사: 일대일 대응 함수 (전사/단사 모두 만족시키는 경우)
동형사상: 선형변환 T가 전단사 함수인 경우
T가 단사일 때 필요충분조건은 T=단사 kerT={0}
자세한 설명: 방정식의 우항이 0이면 답이 하나만 나오니까 단사라고 이해함. 단사는 하나만 연결되어 있고, kernel은 0으로 가니, 0벡터 하나만 있어야 함.
이처럼 강의를 듣고 권서영, 김은진 학우분들의 요약본까지 참고하여 보니 확실하게 이해가 되었습니다. n차원 함수도 전사, 단사, 전단사 확인이 가능하며, 치역도 쉽게 구할 수 있으며, kernel도 코드를 통해 쉽게 확인이 가능하다는 것을 요약본을 통해 실습해 봤으며 신기했습니다.
[2주차] 선형변환, 핵, 치역 요약 (권서영,김은진)
작성자 : 김은진(2020####41)작성일 : 7월 16일 오후 4:47
조회수 : 20
권서영 학우님의 요약본에 내용 및 코드를 추가하여 완성하였습니다.
2주차 선형변환, 핵, 치역 요약(코드 포함) - 권서영+김은진-1.docx
이전
다음
1개의 댓글
이상구(LEE SANGGU)7월 16일 오후 7:11
Good job
등록
5. 선형변환 (Linear Transformation)
5.1 선형변환
정의1. 행렬변환(matrix
transformation), 선형변환
(1) 입력과 출력이 모두 벡터인 함수 = 변환. 벡터는 우리가 움직인다고 생각하 기에 ‘변환’이라고 부르는 것이다.
(pre-image) A가
m*n행렬이고, TA(x) = Ax
(2) ![]()
선형변환은 원점이 변하지 않고, 점들 사이의 거리가 여전히 평행하고 일정한 변 환을 뜻함
R^n에서 R^n 자신으로의 선형변환을 R^n 위의 선형연산자라 한다.
![]()
# 선형변환 정의 코드
x1, x2 = var('x1, x2') # 변수 선언
outputs = [ x1, x2, x1-x2]
T_symbolic(x1, x2) = outputs # 변환 정의
print "T: ", T_symbolic
print
# 선형변환 정의
T = linear_transformation(QQ^2, QQ^3, T_symbolic)
print T
print
u = vector(QQ, [3,-1])
v = vector(QQ, [1,2])
k = 3
print "T(u + v) = ", T(u + v)
print "T(u) + T(v) = ", T(u) + T(v)
선형변환 T의 표준행렬(standard
matrix)라 함. (=[T])
기본단위벡터 = 표준기저 (e1,
e2,…,en)
+표준행렬 : 기본단위벡터를 순서대로 대입하여 열을 구함으로 쉽게 만들 수 있음.

# 표준행렬 구하는 코드
x, y, z = var('x y z')
h(x, y, z) = [x+2*y,
-x-y, z, x+z]
T = linear_transformation(QQ^3,
QQ^4, h) # 선형변환 정의, 여기서 스칼라는 유리수
C = T.matrix(side='right')
# 표준행렬
print "[T]
= "
print C
print
print "정의역: ", T.domain() # 정의역
print "공역: ", T.codomain() # 공역
print
x0 =
vector(QQ, [2, -3, 3])
print "T(x0)
= ", T(x0) # 이미지
print
print "[T]x0
= ", C*x0 # 표준행렬과 벡터의 곱
실행값
[T] =
[ 1 2 0]
[-1 -1 0]
[ 0 0 1]
[ 1 0 1]
정의역: Vector space of dimension 3 over Rational
Field
공역: Vector space of dimension 4 over Rational Field
T(x0) = (-4, 1, 3, 5)
[T]x0 = (-4, 1, 3, 5)
5.1 핵(kernel)과 치역(range)
정의1. 핵(kernel), 단사, 전단사, 동형사상(isomorphism)
(1) T: Rn -> Rm 이 선형변환. T에 의한 상이 0이 되는 Rn 안의 벡터 전체의 집합 을 T의 핵이라 함. (kerT)
![]()
(2) 변환 T가 T(u) = T(v) => u=v 만족, 단사(one-to-one injective)
(3) 선형변환 T에 대해 임의의 v의 상 T(v)전체 집합을 T의 치역(range)라 함. ImT.
전사(onto, surjective):
b
= f(a), if the whole target space of f is the image of f.
(4) 선형변환 T가 전단사이면 n=m이 되고, T를 Rn에서 Rn으로의 동형사상
(isomorphism)이라 함. Dimension이 같음.

*The function
f is onto if the equation
f(x)=b has at least one solution
for every right-hand side b. It
is one-to-one if the equation f(x)=b
has at most one solution for each
right-hand side b.
(1)T:Rn→Rm이
선형변환일 때, T에 의한 상이0이 되는Rn안의 전체의 집합을T의핵(kernel)이라
하고kerT로 나타낸다.
즉 kerT={v∈Rn|T(v)=0}
(2)
변환T:Rn→Rm가T(u)=T(v)⇒u=v를 만족하면단사(one-to-one, injective)라 한다.
# 선형변환
kernel 구하기, 변환 단사 확인 코드
U = QQ^3 # 벡터공간
x, y, z = var('x, y, z')
h(x, y, z) = [x+2*y-z, y+z, x+y-2*z]
T = linear_transformation(U, U, h) # 선형변환 생성
print T.kernel() #
kernel 생성
print
print T.kernel() == U.subspace([])
print
print T.is_injective() # 단사 확인
정리. 선형변한이 단사일 필요충분조건
KerT = {0}
Kernel = { u⋳ V | T(u)
= 0} , meaning vector u does not move. Pretty much like finding a null space. Except it is a transformation.
*방정식의 우항이 0이면 답이 하나만 나오니까 단사라고 이해함. 단사는 하나만 연결되어 있고, kernel은 0으로 가니, 0벡터 하나만 있어야 함.
실습
![]()
13. Final OK by SGLee Finalized by 양소혜, 김수민 [2주차] 고윳값, 고유벡터, 직교행렬, 대각화행렬
Final OK by SGLee
Finalized by 양소혜, 김수민 [2주차] 고윳값, 고유벡터, 직교행렬, 대각화행렬
작성자 : 김수민(2020####78)작성일 : 7월 27일 오후 5:41
조회수 : 15
양소혜 학우님의 고윳갑과 고유벡터에 대한 정리를 보면서 공부를 진행했습니다. 2주차 강의를 들으면서 eigenvalue와 eigenvector라는 단어를 정말 많이 들었는데 처음에 이 단어를 이해하지 못해 이해를 거의 못했습니다. 그리고 고윳값이라는 단어도 이번에 처음 듣게 되어 이게 무슨 의미인가 개념 자체가 머리 속에서 잡히지 않았습니다. 그러나 양소혜 학우님의 깔끔한 정리와 코드 실습을 본 덕분에 이해할 수 있었습니다. 이미 고윳값과 고유벡터에 대한 정리가 좋다고 생각하기에 저는 여기서 제가 이해한 직교행렬과 대각선행렬까지 작성하며 finalized 하겠습니다.
[2주차] 교윳값, 고유벡터, 직교행렬, 대각선행렬.docx
목록으로 이동
[2주차] 고윳값, 고유벡터 정리 및 실습
작성자 : 양소혜(2021####30)작성일 : 7월 20일 오전 11:54
조회수 : 30
이 파트를 공부하면서
앞에서 가역,비가역을 공부할 때 놓쳤던 내용을 다시 공부할 수 있게 되어 함께 정리해보았습니다.
그리고 고윳값과 고유벡터를 구하는 실습을 하면서 허수도 고윳값과 고유벡터가 될 수 있음을 알게 되었습니다.
그런데 허수가 고윳값과 고유벡터를 구성한다는 것이 어떤 의미인지 궁금하여 더 알아보았습니다.
https://angeloyeo.github.io/2020/11/02/complex_eigen.html
이 글을 읽으며 허수배한다는 것이 회전을 의미한다는 것을 알게 되었습니다. ( 사실 모르는 개념들이 많아 정확히 이해하지는 못했습니다. )
스칼라배를 함이 당연히 실수배만을 의미함이라고 생각했는데, 이번 기회를 통해 허수배도 가능함을 알게 되었습니다.
이전
다음
2개의 댓글
이상구(LEE SANGGU)7월 20일 오후 3:15
잘했습니다. AI 연구에서는 실제 데이터 보통은 모두 실수 데이터 입니다. 그섯으로 m by n data matrix A 를 만들어 그 행렬로 부터 실대칭행렬 A^T A 행렬에 대한 직교 대각화를 하는 SVD 를 주로 사용하므로 ... 허수 고윳값은 크게 신경 한쓰셔도 우리 강좌에서는 무관합니다.
이상구(LEE SANGGU)7월 22일 오후 1:47
누가 여기에 코멘트 달아서 Finalize 해 주세요^^
고윳갑, 고유벡터, 직교행렬, 대각선행렬
양소혜 학우님의 고윳갑과 고유벡터에 대한 정리를 보면서 공부를 진행했습니다. 2주차 강의를 들으면서 eigenvalue와 eigenvector라는 단어를 정말 많이 들었는데 처음에 이 단어를 이해하지 못해 이해를 거의 못했습니다. 그리고 고윳값이라는 단어도 이번에 처음 듣게 되어 이게 무슨 의미인가 개념 자체가 머리 속에서 잡히지 않았습니다. 그러나 양소혜 학우님의 깔끔한 정리와 코드 실습을 본 덕분에 이해할 수 있었습니다. 이미 고윳값과 고유벡터에 대한 정리가 좋다고 생각하기에 저는 여기서 제가 이해한 직교행렬과 대각선행렬까지 작성하며 finalized
하겠습니다.
직교행렬: 정사각행렬 A에 대하여 A의 역행렬이 A의 transpose와 같다면 A는 직교행렬이다.
- 직교행렬의 역행렬은 전치행렬을 통해 구할 수 있다. A.inverse() = A.transpose()
직교닮음: A와 C는 크기가 같은 정사각행렬일 때 C = P.transpose()*A*P인 직교행렬이 존재하면 C는 A의 직교닮음이다.
직교대각화가능: A를 대각화하는 직교행렬 P가 존재할 때 A
-
A가 대칭 행렬이면 직교대각화가능이다. 이는 필요충분조건이다.
n차 정사각행렬 A에 대하여 0아닌 벡터 x가 스칼라 λ에 대하여
Ax = λx
를 만족하는 λ를 고윳값, x를 고유벡터라고 한다.
고윳값과 고유벡터는 행렬 A에 의해서만 결정되므로 행렬만 안다면 우리는 고윳값과 고유벡터를 알 수 있다.
-
고윳값과 고유벡터 구하기
![]()
![]()
( I : Identity matrix ,
I를 곱할 수 있는 이유 : x가 벡터이므로. 만약 x가 없고 λ만 있었다면 I를 곱할 수 없다)
![]()
![]()
이 방정식이 nontrivial
solution을 가져야하므로, A-λI 는 비가역이다. 따라서
![]()
이다.
이 방정식을 풀면
를 구할 수 있다. 그 값을
에 대입하면 x를 구할 수 있다. 이때 고유벡터는 하나의 값으로 나오지 않는다. 왜냐하면 하나의 고윳값에 대응하는 고유벡터는 매우 많기 때문이다.
cf
A가 가역이면
이 trivial solution만을 가짐 증명
만약 A가 가역이고
이 해라면
![]()
이므로
이 trivial solution만을 가진다.
사실 A가 가역임과
이 trivial solution만을 가짐은 서로 동치이다.
ex)
ex) ![]()
고윳값 0에 대응하는 고유벡터는 ![]()
고윳값 1에 대응하는 고유벡터는
이다.
ex)
고윳값은 허수일 수도 있다.
[2주차] 고윳값, 고유벡터 정리 및 실습
작성자 : 양소혜(2021####30)작성일 : 7월 20일 오전 11:54
조회수 : 30
이 파트를 공부하면서
앞에서 가역,비가역을 공부할 때 놓쳤던 내용을 다시 공부할 수 있게 되어 함께 정리해보았습니다.
그리고 고윳값과 고유벡터를 구하는 실습을 하면서 허수도 고윳값과 고유벡터가 될 수 있음을 알게 되었습니다.
그런데 허수가 고윳값과 고유벡터를 구성한다는 것이 어떤 의미인지 궁금하여 더 알아보았습니다.
https://angeloyeo.github.io/2020/11/02/complex_eigen.html
이 글을 읽으며 허수배한다는 것이 회전을 의미한다는 것을 알게 되었습니다. ( 사실 모르는 개념들이 많아 정확히 이해하지는 못했습니다. )
스칼라배를 함이 당연히 실수배만을 의미함이라고 생각했는데, 이번 기회를 통해 허수배도 가능함을 알게 되었습니다.
댓글
이상구(LEE SANGGU)7월 20일 오후 3:15
잘했습니다. AI 연구에서는 실제 데이터 보통은 모두 실수 데이터 입니다. 그섯으로 m by n data matrix A 를 만들어 그 행렬로 부터 실대칭행렬 A^T A 행렬에 대한 직교 대각화를 하는 SVD 를 주로 사용하므로 ... 허수 고윳값은 크게 신경 한쓰셔도 우리 강좌에서는 무관합니다.
이상구(LEE SANGGU)7월 22일 오후 1:47
누가 여기에 코멘트 달아서 Finalize 해 주세요^^
14. [Final OK by TA] [3주차] Fianlize by 김민서, 김수민 (1강 연속, 미분가능
요약 및 실습)
[3주차] Fianlize by
김민서, 김수민 (1강 연속, 미분가능 요약 및 실습)
작성자 : 김수민(2020####78)작성일 : 7월 25일 오후 6:16
조회수 : 30
3주차를 수강하고, 미적분에 대한 기초가 많이 부족하다고 느꼈습니다. 아직 수학적 지식이 많이 없어서 3주차 후반 강의의 내용은 거의 대부분이 이해가 되지 않았습니다.
그래서 3주차 강의의 초반 내용부터 다른 학우분들이 정리한 내용들을 보며 이해해보려고 합니다.
김민서 학우님이 정리한 연속 미분가능에 대한 내용을 보며 제가 이해한 내용으로 추가 정리하여 작성했습니다.
- 함수의 연속은 좌극한, 우극한, 함숫값이 일치하는 경우를 말함.
- 미분 가능하면 연속이지만, 연속이라고 항상 미분 가능하지 않는다.
- 도함수는 기호가 다양하며 함수를 미분하면 그 함수가 도함수이다.
- 함수를 미분한 도함수가 또 미분 가능하면 다시 미분할 수 있다. 그 이후에도 미분이 가능하면 또 다시 추가적으로 미분이 가능하다. 이를 제2계도함수, 제3계도함수, …, 제n계도함수라고 한다. n계도함수를 나타내는 기호도 다양하다. 예시로 속도는 1계도함수이고, 가속도는 2계도함수이다. 코드를 이용하면 n계도함수도 쉽게 수할 수 있다.
- X가 a에서 미분 가능하면 a에서 접선을 그을 수 있다. 이때 기울기를 구할 수 있고 이를 접선의 방정식으로 쉽게 구할 수 있다.
- 접선과 수직인 직선을 법선이라 한다. 법선의 기울기와 접선의 기울기를 곱하면 -1이 된다. 이 또한 코드를 이용하여 n차의 함수도 쉽게 구할 수 있다.
김민서 학우님의 함수 구현하기, 도함수와 n계 도함수 구하기, 삼각함수의 극한 구하기 실습을 보며 코드에 대한 이해를 완벽히 했습니다. 학창시절 때는 3차 4차 함수의 도함수와 극한 까지만 그려봤는데 이렇게 코드로 여러 차원의 함수를 그리는 것을 보며 신기했습니다.
김민서 학우님의 코드에 이어 접선의 방정식을 구한 후 그리는 실습을 진행해보겠습니다. 교수님의 강의에 있는 접선의 방정식 코드를 참고하여 4차 함수에서의 접선을 구하여 그리는 실습을 해보겠습니다.
<실습 추가>
var('x')
f(x) = x^4+x^2+sqrt(15)
z = f(6)
print(z)
df(x) = diff(f(x), x)
y(x) = df(6)*(x - 6) + z
print(y(x))
p1 = plot(f(x), x, 0, 10, linestyle =
"--", color = 'blue')
p2 = plot(y(x), x, 0, 10, color = 'red')
show(p1 + p2)
[3주차] 1강 연속, 미분가능 요약 및 실습
작성자 : 김민서(2021####02)작성일 : 7월 21일 오전 3:34
조회수 : 29
3주차 1강을 들으면서 미적분의 기초인 연속 , 미분가능, 도함수, 접선의 방정식과 같은 개념에 대해 학습한 후
실습 예제의 숫자를 변환하면서 총 세 차례의 실습을 진행해보았습니다.
3주차 수업을 들은 후 finalized 해서 하나의 문서로 만들어보고 싶습니다.
3주차 인공지능 기초수학 1. 일변수함수와 미적분
좌극한 = 우극한 = 함숫값 이 모두 같다면 이 함수는 연속이라고 말함.
함수 f(x)가 a에서 미분가능이면 연속임, 하지만 그 역은 성립하지 않음.
도함수 기호는 다양함.
함수 미분히면 -> 그 함수가 도함수, -> 상수 대입하면 그 점에서의 미분계수 구할 수 있음.
N번 미분하면 n계도함수라고 말함.
접선의 방정식
법선의 기울기도 쉽게 구할 수 있음
실습 1. 함수와 범위 변화시켜서 그래프 코드로 구현해보기
var('x') # Define variable "x"
A = plot(x^10/11, x, -5, 5, linestyle =
"--", color = 'green')
# graph
the first function
B = plot(-1/x^2, x, -5, 5) #
graph the second function
C = text("y = x^10/11 ", (3, 4),
color = 'green', fontsize = 15)
# add
the text on given position
D = text("y = -1/x^2", (-1, 5),
fontsize = 15 )
# and
set the font of the text
show(A + B + C + D, ymax = 10, ymin = -10) #
display graphs and texts one time
실습 2. 함수 x^4 + 6*e^x 의 3계 도함수와 5계 도함수 코드로 구현해보기
var('x')
f(x) = x^4 + 6*e^x
print(diff(f(x), x)) #
dy/dx
print(diff(diff(diff(f(x), x), x,),x)) #
3계도함수
print(diff(diff(diff(diff(diff(f(x), x),
x), x),x),x)) # 5계도함수
실습 3. 삼각함수의 극한 구하기
var('x, y')
f(x) = cos(x)/abs(sin(x))
g(x) = x^2/sin(x)
A = limit(f(x), x = pi/4) #
x = pi/2일
때 극한
B = limit(g(x), x = pi/8) #
x = pi/4일
때 극한
print(A)
print()
print(B)
댓글
이상구(LEE SANGGU)7월 21일 오전 4:59
limit 설명에서 2를 4로 4를 8 로 고쳐 주려고 했다 ... # 코드내용 설명부분은 안 고친 것이지요? 보시고 본인 코드 설명 중 오타 보이면 고치세요^^
이상구(LEE SANGGU)7월 22일 오후 1:45
누가 여기에 코멘트 달아주세요^^
김민서(2021####02)7월 22일 오후 7:56
오타 수정 후 3주차 3강까지 수강하여서 일변수 함수의 미적분 요약 및 실습 게시물 다시 올렸습니다! 참고해주시면 감사하겠습니다.
15. [Final OK by TA] 3주차] Fianlized by 김은진, 김민서, 김수민 (내용
요약 및 실습 추가)
[3주차] Fianlized
by 김은진, 김민서, 김수민 (내용 요약 및 실습 추가)
저 또한 기초부터
다져야 할 필요성을 느껴 주요 용어들을 정리하며 그 개념을 확실히 하도록 하였습니다. 김민서, 김수민 학우님들의 내용을 바탕으로 저는 3주차 전반전인 내용을 다루었습니다.
- 수렴, 발산 :임의의 양수 ε에 대하여, 만일 0 < δ이면 |f (x)- b| < ε 되게 하는 적당한 양수 δ가 존재하면, x가 a에 접근할 때 f(x)는 b에 수렴한다고 하고, b를 (x가 a 에 접근할
때) f (x)의 극한이라고 부르며,
라고 쓴다. 수렴하지 않으면 발산한다고 한다.
- 미분계수 : 함수
f(x)가 a를 포함하는 어떤 구간에서 정의되어 있고, 극한값 이 존재하면 f(x) 는
x= a 에서 미분가능이라고 하며, 이 극한값을 f(x) 의 a에서의 미분계수라 한다. 이는 f '(a)로 나타낸다.
- 기본정리 : f(x)가 [a, b]에서 연속이고 F(x)를
f(x)의 임의의 한 부정적분, F'(x) = f(x) 이라 하면 다음식이 성립한다.
![]()
- 다변수 함수 :
x, y를 독립적으로 변화하는 두 변수라 하고 z 를 제
3의 변수라 하자. x, y 의 값이 각각 정해지면 여기에 대응하여 z 의 값이 정해질 때 z 를 두 변수 x와 y 의 함수라 한다. 이를 z = f(x,y) 로 표시한다. 2 이상의 변수의 함수도 정의할
수 있으며 이를 다변수함수라 한다.
- 편도함수 : z =f(x,y) 가 x와 y의 함수라 하자. f의 x에 관한 편도함수는 다음과 같이 정의된다.
![]()
- 연쇄법칙
1) z=f(x,y)가 x, y에 관해서 편미분가능이며 편도함수가 연속이고, x, y 가
또 다른 변수 t 의 미분가능인 함수이면, z 는 t 에 관해서 미분가능이며 아래와 같다.
![]()
2) z=f(x,y) , y=g(x)일 때의 연쇄법칙은 아래와 같다.
![]()
3) z=f(x,y)가 연속인 편도함수를 가지며, 가 편미분가능이면, 아래와 같다.
![]()
-Newton's
method : 실수값 함수의 근을 그래프롸 도함수를 이용하여 쉽게 구하는 법
<실습추가 - 뉴턴방법>


[3주차] Fianlize
by 김민서, 김수민 (1강 연속, 미분가능 요약 및 실습)
작성자 : 김수민 작성일:7월 25일
오후 6:16
조회수 10
3주차를 수강하고, 미적분에
대한 기초가 많이 부족하다고 느꼈습니다. 아직 수학적 지식이 많이 없어서 3주차 후반 강의의 내용은 거의 대부분이 이해가 되지 않았습니다.
그래서 3주차 강의의 초반 내용부터 다른 학우분들이 정리한 내용들을 보며 이해해보려고 합니다.
김민서 학우님이 정리한
연속 미분가능에 대한 내용을 보며 제가 이해한 내용으로 추가 정리하여 작성했습니다.
- 함수의 연속은 좌극한, 우극한, 함숫값이 일치하는 경우를 말함.
- 미분 가능하면 연속이지만,
연속이라고 항상 미분 가능하지 않는다.
- 도함수는 기호가 다양하며 함수를 미분하면 그 함수가 도함수이다.
- 함수를 미분한 도함수가 또 미분 가능하면 다시 미분할 수
있다. 그 이후에도 미분이 가능하면 또 다시 추가적으로 미분이 가능하다. 이를 제2계도함수, 제3계도함수, …, 제n계도함수라고 한다. n계도함수를 나타내는 기호도 다양하다. 예시로 속도는 1계도함수이고, 가속도는 2계도함수이다. 코드를 이용하면 n계도함수도
쉽게 수할 수 있다.
- X가 a에서 미분
가능하면 a에서 접선을 그을 수 있다. 이때 기울기를 구할
수 있고 이를 접선의 방정식으로 쉽게 구할 수 있다.
- 접선과 수직인 직선을 법선이라 한다. 법선의 기울기와 접선의 기울기를 곱하면 -1이 된다. 이 또한 코드를 이용하여 n차의 함수도 쉽게 구할 수 있다.
김민서 학우님의 함수 구현하기, 도함수와 n계 도함수 구하기, 삼각함수의 극한 구하기 실습을 보며 코드에 대한
이해를 완벽히 했습니다. 학창시절 때는 3차 4차 함수의 도함수와 극한 까지만 그려봤는데 이렇게 코드로 여러 차원의 함수를 그리는 것을 보며 신기했습니다.
김민서 학우님의 코드에 이어 접선의 방정식을 구한 후 그리는 실습을 진행해보겠습니다. 교수님의 강의에 있는 접선의 방정식 코드를 참고하여 4차 함수에서의
접선을 구하여 그리는 실습을 해보겠습니다.
<실습 추가>
var('x')
f(x) = x^4+x^2+sqrt(15)
z = f(6)
print(z)
df(x) = diff(f(x), x)
y(x) = df(6)*(x - 6) + z
print(y(x))
p1 = plot(f(x), x, 0, 10, linestyle = "--",
color = 'blue')
p2 = plot(y(x), x, 0, 10, color = 'red')
show(p1 + p2)

[3주차] 1강
연속, 미분가능 요약 및 실습
작성자 : 김민서(2021####02)작성일 : 7월 21일 오전 3:34
조회수 : 28
3주차 1강을
들으면서 미적분의 기초인 연속 , 미분가능, 도함수, 접선의 방정식과 같은 개념에 대해 학습한 후
실습 예제의 숫자를
변환하면서 총 세 차례의 실습을 진행해보았습니다.
3주차 수업을 들은 후
finalized 해서 하나의 문서로 만들어보고 싶습니다.
3주차 인공지능 기초수학 1. 일변수함수와 미적분
좌극한 = 우극한 = 함숫값 이 모두 같다면 이 함수는
연속이라고 말함.
함수 f(x)가 a에서 미분가능이면 연속임, 하지만 그 역은 성립하지 않음.
도함수 기호는 다양함. ![]()
함수 미분히면 -> 그 함수가 도함수, -> 상수
대입하면 그 점에서의 미분계수 구할 수 있음.
N번 미분하면 n계도함수라고 말함.
접선의 방정식 ![]()
법선의 기울기도 쉽게 구할 수 있음
실습 1. 함수와 범위 변화시켜서 그래프 코드로 구현해보기
var('x') # Define
variable "x"
A = plot(x^10/11, x, -5, 5, linestyle = "--", color =
'green')
# graph the first function
B = plot(-1/x^2, x, -5, 5) # graph the second function
C = text("y = x^10/11 ", (3, 4), color = 'green',
fontsize = 15)
# add the text on given position
D = text("y = -1/x^2", (-1, 5), fontsize = 15 )
# and set the font of the text
show(A + B + C + D, ymax = 10, ymin = -10) # display graphs and texts one
time

실습 2. 함수 x^4 + 6*e^x 의 3계 도함수와 5계 도함수 코드로 구현해보기

var('x')
f(x)
= x^4 + 6*e^x
print(diff(f(x),
x)) # dy/dx
print(diff(diff(diff(f(x),
x), x,),x)) # 3계도함수
print(diff(diff(diff(diff(diff(f(x),
x), x), x),x),x)) # 5계도함수
실습 3. 삼각함수의 극한 구하기

var('x,
y')
f(x)
= cos(x)/abs(sin(x))
g(x)
= x^2/sin(x)
A =
limit(f(x), x = pi/4) # x = pi/2일 때
극한
B =
limit(g(x), x = pi/8) # x = pi/4일 때
극한
print(A)
print()
print(B)
16. Finalized by 김수민,
이시원 [3주차 질문] Newton's Method (뉴턴 방법) + 실습
Finalized by 김수민, 이시원 [3주차 질문] Newton's Method (뉴턴 방법)
Newton’s method의 개념이 헷갈려 문의게시판을 이용하여 개념에 대한 질문을 했습니다. 이시원 학우님이 이에 대한 답변을 해주었으며, 저는 이를 통해 뉴턴 방법의 개념에 대해 더 가까워졌습니다.
개념을 안 후 실습실에서 뉴턴 방법을 실습해 보며 finalized를 진행했습니다. 실습 과정을 통해 뉴턴 방법에 대한 원리와 개념을 더 확실하게 알 수 있었습니다. 그리고 뉴턴 방법이 x축과 만나는 근의 근사값을 정확하게 구할 수 있다는 것에 정확히 알게 되었습니다.

[3주차 질문] Newton's Method (뉴턴 방법)
작성자 : 김수민(2020####78)작성일 : 7월 30일 오전 00:57
조회수 : 6
Newton's Method를 공부하다가 제가 제대로 개념을 이해한 것인지 궁금해서 질문드립니다.
뉴턴의 방법은 주어진 함수를 그린 후 x축과 만나는 근의 근사값을 정확하게 구할 수 있는 것으로 이해했습니다.
이를 위한 과정이 헷갈립니다.
1. A1에서의 접선 P1을 그려 A2를 구합니다.
2. A2를 통해 함수에서의 A3 위치를 잡습니다.
3. A3에서의 접선 P2를 그려 A4를 구합니다.
4. 이 과정들을 반복하여 함수가 x축과 만나는 근의 근사값을 소숫점 이하 몇 번째 자리까지든지 정확하게 구합니다.
제가 이해한 Newton's
Method의 개념인데 이렇게 진행되는 것이 올바른지 궁금합니다.
제가 잘못 이해하고 있는 부분이나 더 알아야 할 부분이 있으면 알려주시면 감사하겠습니다.
이시원(2021####15)7월 30일 오전 1:13
알맞은 방법으로 뉴턴법을 통해 근사값을 찾으신것 같습니다.
김수민(2020####78)7월 30일 오전 1:27
감사합니다. 이 부분이 잘 이해가 되지 않아 강의를 여러번 돌려봤는데 확신이 생기지 않아 질문했는데 덕분에 확신이 생겼습니다. 이제 뉴턴 방법의 개념에 대해 알게 되었으니 이등분법을 사용하여 근에 가까운 점에서 뉴턴 방법을 사용하여 함수 x축과 만나는 근의 근사값을 구하는 실습을 해보며 finalized 하겠습니다.
######2.
Comment :
3주차의 뉴턴 방법을 학습하고 나서, 이를 R 소프트웨어로 직접 구현해 보는 실습을 하였습니다. 현재 는 유용한 R package가 정말 많기 때문에 실제 데이터
분석을 할 때나, 심지어 자습을 하는 경우에도 배운 방법론들을 직접 구현하기보다 기존의 패키지를 활용하고
결과값을 내는 것에 급급할 때가 많았는 데, 뉴턴 방법을 배우고 이를 직접 함수를 짜서 구현해 봄으로써
뉴턴 방법의 원리를 더욱더 익숙하게 체득할 수 있는 좋은 기회였습니다.
Final OK by SGLee [3 주차] Newton's method 실습 정리
Finalized by 박정현, 조주현, 양지원, 이지용
작성자 : 이지용(2021####83)작성일 : 7 월 22 일 오후 10:52
조회수 : 21
Newton's method 정리:
![]()
위 그림을 이용하면 a₂=a₁ -f(a₁)/f'(a₁)이라는 식을 도출해 낼 수 있고 a(n+1)=a(n) -f(a(n))/f'(a(n))의 과정을 계속 반복하다 보면 a 의 값은 실제 함수 f 의 근에 수렴하게 된다는 것입니다. 아래의 코드를 이용하면 Newton's method
를 이용해 함수 f 의 근을 도출해 낼 수 있었습니다.
var('x') #<--변수를 지정합니다. f(x) = #<--함수를 적어넣습니다.
a= #<--초기값을 기입하는 것입니다.
n= #<--a(n+1)=a(n) -f(a(n))/f'(a(n))의 과정을
반복할 횟수를 기입합니다. df(x)=diff(f(x),x)
for i in range(0,n): a=a -(f(a)/df(a)) print i,'
',a
저는 f(x) = x^3 - 7*x -2 로 f(x)=0 의
해를 구하였습니다. var('x')
f(x) = x^3 - 7*x -2
a= -2 n=15
df(x)=diff(f(x),x) for i in
range(0,n):
a=a -(f(a)/df(a)) print
i,' ',a
초기값 a₀에 -2.0 를 넣었더니
a 의 값이 -2.48928857181008 로 수렴하며 함수 f(x)의 근 중 하나가 -2.48928857181008 임을 알 수
있었습니다.
그러나 a₀=1.5
를 했더니 a=-2.48928857181008 가 나오고 a₀=1.1
를 했더니 a=2.77845711825839, a₀=0.1 를 했더니 a=-
0.289168546448310, a₀=-1.5 를 했더니
a=2.77845711825839 가 나오며 f(x)의 근은 -2.48928857181008, -
0.289168546448310, 2.77845711825839 세개이나 a₀의 값이 실제 근과 차이가 벌어지면 자기 근처 근이아닌 엉뚱한 근을 찾는 모습을 볼 수 있었습니다.
그래서 Newton's method
를 이용해 함수 f 의 근을 도출할 때 초기값을 반드시 실제 해와 가까운 근사치로 두어야 함을 알 수 있습니다.
또 f(x)의 근을 a 라 했을때, a 에서 함수 f 가 미분 가능해야 하며 f'(a)≠0 이어야
Newton's method 가 성립합니다.
그리고 또 초기값 a₀이 충분히 실제 근과 가까워야 하는데 왜냐하면 초기값 a₀이 원래근과 너무 멀면 의도한 근이 아닌 다른 근의 값이
나올수도 있기 때문입니다.
(인용:[3 주차][실습] Newton
method 구현 by 박정현, [3 주차] 함수의 극한, Newton's Method 실습 by
조주현, [3 주차]
Newton Ralphson Method
의 오류 by 양지원) [3 주차][실습]
Newton method 구현
작성자 : 박정현(2018####21)작성일 : 7 월 21 일 오후 6:38
조회수 : 17
Newton method 에 대한 이해를 바탕으로, 알고리즘을 R 소프트웨어를 활용하여 구현해 보았습니다! 우선, bisection
method 를 활용해 plausible 한 초깃값을 구해 주었고,
뉴턴 알고리즘을 구현하여
1. bisection method 를 총해 근의 근사치를 초깃값으로 넣어 준 것
2. 난수를 추출하여 초깃값으로 넣어준 것
두 방법을 이용해 근이 존재하는 함수의 근을 찾는 실습을 해 보고, 이를 시각화해 보았습니다. 그 결과, 1,
1 번 방법 모두 정상적으로
작동하지만 난수를 추출하여
초깃값으로 활용하는 2 번 방법의 경우 1 번 방법보다
더 많은 iteration
을 필요로 하며,
더 비효율적이라는 점을 알 수 있었습니다.
이 알고리즘을 통해 어떤 함수든 근이 존재할 경우 아무리 복잡한 꼴의 함수라도 그 근 혹은
근사치를 구할 수 있습니다!
Junghyun Park 2021 7 21
method 이용한 다항함수의 근 구하기
0. 근이 존재하는 아무 함수
설정
![]()
![]()
1, 초깃값 지정 : bisection method
![]()
2. Newton Rapson method 구현
![]()
![]()
3. 결과 비교
![]()
![]()
![]()

·
첫 번째 방법의 경우,bisection method 로 찾아준 inital value
와 newton
method 로 찾은 해가 거의 일치하여, 효율적으로 근을 찾을 수 있는 것을 볼 수 있습니다.
·
두 번째로 초깃값을 1 부터 100 사이의 아무 수나 랜덤으로 추출하여 사용한 경우에도 구현한 newton method 가 잘 수렴하지만, 해를 찾을 때까지 다소 반복수가 많이 필요함을 알 수 있습니다.
[3 주차] 함수의
극한, Newton's Method 실습 작성자 : 조주현(2018####96)작성일 : 7 월 22 일 오후 2:59 조회수 :
22
예제에서 함수가 양의 무한으로 발산할 때는 +Infinity 로 결과가 나오는 것을 보고 음의 무한으로 발산할 때와 우극한과 좌극한이 서로 다른방향으
로 발산할 때 어떤 결과가 나오는지 궁금해서
f(x) = 1/x 로
실습해본 결과 limit(f(x), x = 0, dir = '-')는 -Infinity 로 , limit(f(x), x = 0) 는
Infinity 로 결과가 나옴을 확인했습니다.
Newton's Method 에서는 언제 잘 작동하지 않을까? 가
궁금했습니다.
첫번째로 계산 도중 현재
x 값에서의 미분계수 값이 0 인 경우가 있습니다. 당연하게도 Newton's
Method 는 초기점에서
접선을 그리고 그 접선이 x 축과 만나는 점을 다음 점으로 하여 과정을 반복하는 것인데, 이
떄 미분계수가 0 이라면 접선이
x 축과 평행하여 만나는 점이 없게됩니다.
두번째는 구하고자 하는 함수의 실근이 여러개인 경우 입니다. 이런 경우 Newton's
Method 는 초기값에 따라 하나의 근만 찾아주기 때문에 구하고자 하는 근과 Newton's Method 로 구한 근이 서로 다를 수 있습니다.
결국 Newton's Method 에서 초기값을 어떻게 설정하느냐가 중요한 요소인 것을 깨달았습니다.
f(x) = 1/x 라고 두고 우극한과 좌극한 그리고
limit(f(x))가 어떻게 출력되는지 알아보았습니다.

Newton's Method 를 로 실습해보았습니다. 이 때 로 x=0 일 때 미분계수가 0 이 됩니다. 만약 초기값을 0 으로 하면
![]()
다음과 같이 정상적으로 수행되지 않습니다.
Newton's Method 를 … 라고 하고 실습해보았습니다. 이
함수는 인수분해를 통해 근이
0,1,3 임을 확인할 수 있습니다. 이 때 초기 x 값을 0 과 1 의 중간인 0.5 로 설정했을 때는 Newton's Method 로 3 이 나오게 됩니다.

초기값을 0.45 로 설정하면 다음과 같이 0 으로
결과가 나온다.
![]()
초기값을 0.55 로 설정하면 다음과 같이 1 이
나오게 된다.
![]()
** 세
근 중 두 근이 각각 0 과 1 이기 때문에 그 사이에서 초기값을 설정하여 각 근이 나오는 초기값의 범위를 알아보았다. (소수점 두번째자리까지) 0.46
이하일 때는 0 이 나오고, [0.46,0.52]사이에서는 근이 3 으로 나오고 0.53 일때는 근이 0 으로 나오고,
0.54 이상일때는 근이 1 로 나온다.
이렇게 초기값이 조금만 달라져도 결과로 나오는 값이 달라지게 된다는 것을 알 수 있었다.
[3 주차] Newton
Ralphson Method 의 오류 작성자 : 양지원(2021####82)작성일 : 7 월 22 일
오후 9:58 조회수 : 2
Newton Ralphson Method
를 공부하던 도중 항상 이 공식으로 해를 구할수 없다는 것을 찾았습니다. 1.
Root 에서의 derivative 가
존재 하지 않을때와 2. Stationary iteration
point 가 있을 때 위 방법의 Xn 이 diverge 하거나 undefined 되기 때문입니다. 검토해 주시고 혹시 틀리거나
더 추가할 부분 있으면 의견 내주세요

![]()
17. Re-Finalized by 김나현, 박누리, 김수민 [3주차] (적분, 다변수함수, 편도함수, 방향도함수
적분, 다변수함수, 편도함수, 방향도함수, 그래디언트, 헤시안행렬
김나현 학우님과 박누리 학우님의 적분, 다변수함수, 편도함수, 방향도함수, 해시안행렬에 대한 설명을 보면서 개념을 이해했습니다. 명확한 개념 설명과 코드 실습까지 있어서 개념을 이해하기에 너무나도 적합했다고 생각합니다. 잘 정리된 요약본을 보며 제가 이해한 내용들을 간략하게 아래에 작성하며 finalized 하겠습니다.
다변수함수: 독립적으로 변화하는 두 변수 x와 y, 제 3 변수 z에 대해 z = f(x, y)로 표기하며 이처럼 이변수 이상의 함수인 경우
편도함수:
헤시안 행렬에서 활용됨
연쇄법칙: 두 함수 합성함수에 대한 미분법이다.
방향도함수: ![]()
그래디언트: f의 편도함수를 성분으로 갖는 벡터로 스칼라장의 최대 증가율을 나태는 벡터장이다.
헤시안행렬: f의 2계 편도함수를 성분으로 갖는 행렬이며 다변수 함수의 극값이 극대인지 극소인지 판별이 가능하다.
적분

함수 f(x)에 대하여 f(x)가 정의된 구간의 모든 x에 관해 F’(x)=f(x)를 만족하는 함수 F(x)가 존재할 때 이 것을 f(x)의 원시함수 혹은 부정적분이라고 부르고 f(x)에 대한 부정적분 F(x)를 구하는 것을 적분이라 한다. f(x)의 부정적분은 다음과 같이 나타낸다.
![]()
이때 f(x)는 피적분함수, dx는 적분 변수라 하며F(x)가 f(x)의 한 부적적분이면
이고 임의의 상수 C는 적분상수이다.
[a, b]에서 연속인 함수 f(x)는 [a, b]에서 적분 가능이며 [a, b]에서 정적분은
로 정의한다.

다변수함수
독립적으로 변화하는 두 변수 x와 y, 제 3의 변수 z에 대해 z가 두 변수 x, y의 함수라면 z=f(x, y)로 표기한다. 이와 같이 이변수 이상의 함수를 다변수함수라 부른다.
편도함수
z=f(x, y)가 x와 y의 함수라면 f의 x에 대한 편도함수는 다음과 같다.
![]()

연쇄법칙
두 함수의 합성함수에 대한 미분법이다. z=f(x, y)가 편미분 가능이며 편도함수가 연속이고 x, y가 또 다른 변수 t의 미분가능한 함수라면 z는 t에 관하여 미분 가능하며
이다.

방향도함수
u=(u1, u2)를 크기가 1인 단위백터라 할 때 점 (a, b)에서 u의 방향으로 방향도함수는 다음과 같의 정의된다.
![]()

그래디언트
스칼라장의 최대 증가율을 나타내는 벡터장이다. 다변수함수 f(x1,
x2, … , xn)의 그래디언트는 다음과 같이 나타낸다.
![]()
헤시안 행렬
f의 2계 편도함수를 성분으로 갖는 행렬이며 다변수함수의 극값을 극대인지 극소인지 판단할 때 사용한다. 다변수함수 f(x1,
x2, … , xn)에 대한 헤시안은 다음과 같다.

re-finalized by 김나현, 박누리[3주차]요약
작성자 : 김나현(2017####30)작성일 : 7월 30일 오전 00:57
조회수 : 3
박누리 학우님이 요약하신 3주차 내용에 실습한 결과를 덧붙였습니다.
주요 키워드를 통해 스스로 내용을 정리하고, 그것에 해당하는 교재 속 예제를 직접 실습해보았습니다.
내용 요약과 중요한 실습 코드가 같이 있으면 공부하기 수월할 것 같아 re-finalize를 진행했습니다.
######3. Comment :
3주차 강의를 듣고 생긴 의문점에 대해 다른 학우님들과 교수님의
설명을 듣고 새롭게 알아갈 수 있었습니다.
[Final OK by TA] Finalized by 박정현, 문가은, 이상구 교수님 ([3 주차] '미적분 -
벡터와 공간기하' 관련 질문 / 질문자: 정진웅)
작성자 : 임동선(2017####79)작성일 : 7 월 23 일 오후 4:11
조회수 : 19
[3 주차] '미적분 - 벡터와 공간기하' 관련
질문
작성자 : 정진웅(2021####60)작성일 : 7 월 22 일 오후 2:42
조회수 : 39
Q1. 외적을 구하는 다음 과정에서 i, j, k
는 어떤 값인지, 무엇을 의미하는 것인지 궁금합니다.
Q2. 앞서 배웠던 선형대수학 부분에서 행렬 A 에
대한 det
A 를 구하는 방법이 외적을 구하는 과정과 동일한 것 같은데 어떤 관계가 있는지
궁금합니다.
![]()
Q3. 벡터함수 r(t) = ( f(t),
g(t), h(t), ... ) 는 t 의 값에 따른 x
좌표, y 좌표,
z 좌표, ... 를 의미하는
것이 맞나요? 만약 그렇다면 t 에 대한 ( ... ) 안의 값이 4 개 이상일 때(즉, x, y, z 좌표 이외에 다른 좌표가 정의되야 할 때)는 어떻게 표현되나요?
이전 다음
3 개의 댓글
박정현(2018####21)7 월 22 일 오후 3:16
Q1. i, j, k 는 각 축의 단위벡터로 이해하시면 편합니다.
여기서 i =(1,0,0), j = (0,1,0), k = (0,0,1) 이 되겠네요.
Q2. cross
product 는 서로 독립인 두 벡터에 대해 모두 수직인 축을 찾아주기 때문에 보통 3 차원에서 정의되는 개념입니 다. 보통 2*2 행렬의 determinant 는 행렬 A 를 이루고 있는 두 행벡터에 의해 만들어지는 평행사변형의 넓이 인데 이를
3 차원으로 확장해 보면 3*3 행렬의
determinant 는 각 벡터에 의해 만들어지는 parallelogram 의 부피가
되고..이 과정에서 A 가 이루는 parallelogram 의 높이를 구해야 하는데 이때 외적의 계산과정이 사용됩 니다. 다시 말해, 외적은 3*3 행렬의 determinant 를 구하는 계산 과정의 일부라고 보시면 되겠습니다.
Q3.
t 의 값에 따른 (보통 시간에 따른..) x,y,z 좌표를 뜻하는 것이 맞습니다. 축이 4 개 이상으로 늘어난다면 r(t)= ( f(t), g(t), h(t),
s(t) ) 등과 같이 나타낼 수 있겠지만 시각화가 불가능하게 됩니다.
문가은(2020####34)7 월 22 일 오후 3:16
Q1. 단위벡터로 생각하셔도 될 것 같습니다! 게시하신
그림은 외적을 계산하는 방법에 관련된 그림인데, a1, b1. 에
상수나 미지수가 들어가서 옆에 있는 식과 같은 방식으로 계산할 수 있습니다. i=<1,0.0>,
j=<0,1,0>,
k=<0,0,1>로 생각하시면 될 것 같습니다.
Q3. 맞습니다. 만약 x,y,z 축만 존재한다면 3 차원 벡터인 것이고 안에 각각의 성분이
적혀있을 것입니다. t 에 대해 안의 값이 늘어나는 것 또한 3 차원일
때와 같습니다.
4 개 이상일 경우 그만큼 차원이 증가하는 것이고, 그만큼 <> 안에 성분을 똑같이 표현하면 될 것 같습니다. 이상구(LEE SANGGU)7 월
22 일 오후 3:18
답
1. i= (1, 0, 0), j=(0, 1, 0), k=(0, 0, 1) 벡터로 이해 하시면 됩니다. 답 2. 동일합니다. 답 3. x 축, y 축,
z 축 에 이어서 , 4 번째 좌표는 u, 5 번째 축은 v, 6 번째 축은 w 등으로 쭉 확장해 가면 됩니다. 이상구(LEE SANGGU)7 월 22 일 오후 7:02
누가 다시 맞는 질문과 그에 대하여 이해되는 답 부분만 남기고 모든 기여자
이름 넣어서 Finalize 하세요^^
######4.
Comment :뉴턴 방법을 시행하는 데 생기는 의문점들에 대해 직접 실습해보고, 그래프레서 해가 없을 경우에도
근에 가장 가까운 점의 좌표를 구할 수 있는지에 대해 실습해 보는 시간을 가졌습니다. 참신한 질문에
대한 답을 코딩을 통해 구현하여 스스로 찾을 수 있었고, 여러 의견을 학우님들과 공유할 수 있었던 좋은
기회였습니다.
[Final ok by SGLee] [3 주차]Finalized by 유민솔, 박건우,
박정현 (Newton's method 에 관한 질문)
작성자 : 유민솔(2021####66)작성일 : 7 월 23 일 오후 5:11
조회수 : 21
박정현님과 박건우님의 답변을 통해 다항 함수에서 해가 존재하지 않는 경우 Newton's method 를 통해서는 최적해를 구할 수 없다는 점을 실습을 통해 확인했습니다.
다항함수와 마찬가지로 삼각함수의
경우도 구할 수 없는지 추가적인 의문이 들어 실습을 통해 확인해보니 역시 구할 수 없음을 알게 되었습니다.
아래에 학우님들의 답변과 삼각함수 실습 내용(캡쳐)을 첨부하겠습니다.
Newton's method 에 대해 공부하는 중 의문점이
생겨 질문을 올립니다.
-Newton's method
:함수의 근(근사값)을 그래프와 도함수를
이용해 쉽게 구하는 방법. 과정은 주어진 함수의 그래프를
그리고 최적화 문제를 푸는 계산 방법인 iterative method 를
이용. 도함수를 이용해서 구한 근삿값에서의
접선이 x 축과 만나는 점을 구하고, 그 점의 x 좌표에서 똑같은 방식을 반복, 해와 가까운 근삿값을 구한다
Q : 그래프에서 해가 없을 경우에도 newton's method 를 이용해 최적해를 구할 수 있는지 궁금합니다. 가령 x 축과의 접점이 없는 그래프의 경우 x 축과 가장 가까운 점의 x 좌표를 이와 같은 방식을 이용해 구할 수 있는지 궁금합니다.
이전 다음
3 개의 댓글
박건우(2020####41)7 월
23 일 오후 4:44
저도 비슷한 궁금증이 들어 실습을 통해 확인해봤습니다! 해가 존재하지 않는 함수 f(x) = x^2 + 1 에
대하여 초기값을 x0 = 0.1 로 설정하여 Newton's Method 를
적용하면 x 축과 가장 가까운 점의 x 좌표, 즉 x = 0 에 근사하는지
Sage 를 통해 알아봤습니다. # 함수 정의 var('x') f(x) = x^2 + 1 # Newton's Method 사용, 근사
a = 0.1 iter = 0 while iter < 20: iter = iter+1 Newton(x) = x -
(f(x)/diff(f(x),x)) a
=
Newton(a) if f(a) == 0: break print(a)
print(iter) 결과적으로, 10 회 반복: x = -
0.0410841828051507 20 회 반복: x = 0.382057800219657 30 회 반복: x =
6.75627878779415 40 회 반복: x = -2.95639671732698 50 회 반복: x =
-0.659353835534255
100 회 반복: x =
154.831397765312 로 Newton's Method 사용을 반복할 수록 x 값이 발산하는 양상을 보였습니다. 아무래도 x 축과 가장 가까운 점의 x 좌표를 이와 같은 방식으로
구하기는 힘들 것 같습니다. (코드는 양지슬 학우님의 "[3 주차] Newton
Method 실습 Finalize by 양지슬" 의 것을 참조했습니다.)
박정현(2018####21)7 월
23 일 오후 4:54
저도 실습을 통해 확인해 보았는데, f(x) = 0 이 되는 x 값이 존재하지 않는 경우 300 회 이상 반복했음에도
알고리즘이
엉뚱한 곳으로 수렴하는 것을 알 수 있었습니다.
fx <-
function(x){ x^2+1 } newton(fun = fx,
x0 = 3) result1 = newton(fun = fx, x0 = 3) result1 %>% round(1)
[1] 1.3 0.3 -1.6 -0.5 0.8 -
0.2 2.8 1.2 0.2 [10] -2.4 -1.0 0.0 -62.7 -31.3 -15.7 -7.8 -3.8 -1.8 [19] -0.6 0.5 -0.7 0.3 -1.4 -
0.3 1.3 0.3 -1.5 [28] -0.4 1.0 0.0 114.4 57.2 28.6
14.3 7.1 3.5 [37] 1.6 0.5 -0.8 0.2 -2.0 -0.7
0.3 -1.4 -0.3 [46] 1.3 0.3 -1.6 -0.5 0.8 -0.2 2.8
1.2 0.2 [55] -2.4 -1.0 0.0 -20.0 -10.0 -4.9 -2.4 -
1.0 0.0 [64] -15.8 -7.9 -3.9 -1.8 -0.6 0.5 -0.8
0.2 -2.1 [73] -0.8 0.2 -2.6 -1.1 -0.1 5.3 2.5 1.1
0.1 [82] -7.6 -3.7 -1.7 -0.6 0.6 -0.6 0.6 -0.6
0.5 [91] -0.7 0.3 -1.5 -0.4 1.0 0.0 -346.9 -173.4 -
86.7 [100] -43.4 -21.7 -10.8 -5.4 -2.6 -1.1 -0.1 5.2 2.5 [109] 1.1 0.1 -9.2 -4.5 -2.2 -0.8 0.2 -
2.9 -1.3 [118] -0.3 1.8 0.6 -0.5 0.7 -0.4 0.9 -0.1 5.4 [127] 2.6 1.1 0.1 -4.8 -2.3 -0.9 0.1 -8.5 -
4.2 [136] -2.0 -0.7 0.3 -1.5 -0.4 1.0 0.0 236.6
118.3 [145] 59.1 29.6 14.8 7.3 3.6 1.7 0.5 -0.7
0.4 [154] -1.0 0.0 14.8 7.4 3.6 1.7 0.5 -0.7 0.4
[163] -1.0 0.0 131.7 65.8 32.9 16.4 8.2 4.0 1.9
[172] 0.7 -0.4 1.1 0.1 -6.5 -3.2 -1.4 -0.4 1.2
[181] 0.2 -2.4 -1.0 0.0 -17.2 -8.6 -4.2 -2.0 -0.7
[190] 0.3 -1.6 -0.5 0.9 -0.2 3.1 1.4 0.3 -1.3
[199] -0.3 1.8 0.6 -0.5 0.8 -0.2 2.2 0.9 -0.1 [208]
3.5 1.6 0.5 -0.7 0.3 -1.4 -0.3 1.3 0.3 [217] -1.5 -0.4 0.9 -0.1 4.2 2.0 0.8 -0.3 1.6 [226] 0.5 -0.8
0.2 -2.2 -0.9 0.1 -3.3 -1.5 -0.4 [235] 1.0 0.0 -11.7 -5.8 -2.8 -1.2 -0.2 2.2 0.9 [244] -0.1 4.6 2.2
0.9 -0.1 3.6 1.7 0.5 -0.7 [253] 0.4 -1.0 0.0 -15.8 -7.9 -3.9 -1.8 -0.6 0.5 [262]
-0.8 0.2 -2.1 -0.8
0.2 -2.0 -0.8 0.3 -1.6 [271] -0.5 0.7 -0.3 1.4
0.3 -1.3 -0.2 2.0 0.7 [280] -0.3 1.4 0.3 -1.3 -0.2
1.9 0.7 -0.4 1.1 [289] 0.1 -7.1 -3.5 -1.6 -0.5
0.8 -0.2 2.1 0.8 [298] -0.2 2.6 1.1
초깃값은
1.3 이었는데 알고리즘을 반복할수록 음수와 양수를 진동하기만 할 뿐 원점에 가장 가까운 점인 x = 0 으로
수렴하지 않았습니다. 하지만 이는 해가 존재하지 않는 경우이므로, 최솟값을
찾는 데는 도함수에 뉴턴 방법을 적용할 수 있습니다. 도함수의 근이 되는 부분이 원래 함수의 극값이
되는 부분이기 때문입니다. (단, 고차원으로 일반화할 경우 찾은 임계점이 극소인지, 극대인지 확인하기
위해 이계도함수 행렬인 헤시안 행렬과
결합하여 쓰여야 합니다)
유민솔(2021####66)7 월 23 일 오후 5:08
감사합니다! 두 분이 다항함수를 통해 증명해주셔서 저는 삼각함수를 통해 확인해보았는데, 역시
엉뚱한 값으로 수렴함을 확인했습니다. 내용 정리해서 Finalize 올리겠습니다!
-삼각함수 실습
![]()
######5.
Comment :
코딩을
통해 구할 수 있는 고차원에서의 정사영에 대해 고려하기 전에, 시각화 가능한 저차원 상황에서의 최단거리를
구하는 상황에 대한 학습이 필요하다고 생각되어 미적분학2 수업을 들을 때 공부했던 문제를 가지고 복습해보는
시간을 가졌습니다. 이를 통해 정사영과 해당 공식에 대한 이해를 더욱 공고히 할 수 있었습니다.
[Final OK by TA] Re-finalized by 박정현, 교수님, [1 주차][참고자료] 정사영을 활용한 여러 상황에서의 최단거리 구하기
작성자 : 임동선(2017####79)작성일 : 7월 23일 오후 6:31 조회수 :
13
시각화 가능한 저차원 문제(2 차원,3 차원)의 경우에
정사영을 활용하여 여러 상황에서의 최단거리를 구할 수 있는데,
이는 현대 사회의 빅데이터에 고차원 벡터의 고차원 평면에 대한 정사영으로 응용될 수 있습니다.
가장 대표적이고 기본적인 예가 p 개의 X 변수( n*p
X 행렬) 와 n 차원 Y 벡터 간 관계를 다루는 다중선형회귀분석인데,
이때 Y 를 X 로 가장 잘 설명하기 위하여 정사영이 활용됩니다.- 이 경우 절편항까지
포함하면 Y 벡터의
p+1 차원 평면으로의 정사영이 곧
X 로 Y 를 가장 잘 설명한 estimator
X(X'X)^-1X'Y 가 됩니다.
이 경우 이미 실습한 파일을 다음과 같이 문의게시판에 업로드한 바 있습니다.
Final OK by SGLee [1주차][실습] R software 로 최소제곱해 구하기
작성자 : 박정현(2018####21)작성일 : 7월 22일 오후 2:29 조회수 :
26
[1 주차][실습] R software 로 최소제곱해 구하기
작성자 : 박정현(2018####21)작성일 : 7월 9일 오후 4:11 조회수 :
16
교수님께서 좀더 큰 차원의 공간에서 정사영을
활용해 보라고 피드백 주셔서, R software
내장 데이터인
mtcars 데이터를 이용해
y 벡터의 8 차원
input space 로의 projection 문제인 다중선형회귀
코드를 실습해 보았습니다 ~^^
교재에 sage 와 python 코드는 잘 수록되어
있기 때문에,
R 코드로도 고차원 행렬의
transpose 와 inverse 구하기, 그리고
정사영을 활용한
최소제곱해 구하기에 대해 궁금하신 분들이 있을 것 같아 R 코드로
실습한 결과를 공유합니다 ^^
X'X 가 full rank 이면 항상 invertible 하므로(첨언하자면, 다중공선성이 있는 경우 full rank 가 성립하지 않습니다..)
교수님께서 설명해 주신
form 인 X'(X'X)^-1 X'Y 로
아무리 큰
행렬에 대해서도 최소제곱문제 arg min B ||Y - XB|| ^2 를 minimize 하는 계수 B 와 최소제곱해 Y hat 을 항상 구할
수 있습니다~^^
R code 로 최소제곱해 구하기
Junghyun
Park 2021 7 9
![]()
|
head(mtcars) ## mpg
cyl disp hp drat wt
qsec vs am gear |
carb |
|
|
|
## Mazda RX4 21.0 6
160 110 3.90 2.620 16.46 0 1 |
4 |
4 |
|
|
## Mazda
RX4 Wag 21.0 6
160 110 3.90 2.875 17.02 0 1 |
4 |
|
4 |
|
## Datsun 710 22.8 4
108 93 3.85 2.320 18.61 1 1 |
4 |
1 |
|
|
## Hornet
4 Drive 21.4 6
258 110 3.08 3.215 19.44 1 0 |
3 |
1 |
|
|
## Hornet
Sportabout 18.7 8
360 175 3.15 3.440 17.02 0 0 |
3 |
2 |
|
|
## Valiant 18.1 6
225 105 2.76 3.460 20.22 1 0 |
3 |
1 |
|
data <- mtcars %>% select(-c(vs,am))
1. R 내장함수 이용하는 방법 lm() 함수 이용
![]()
## -3.0230
-1.6874 -0.4109 0.9640 5.4400
##
##
Coefficients:
## Estimate
Std. Error t value Pr(>|t|)
## (Intercept) 17.88964 17.81996 1.004 0.3259
## cyl -0.41460 0.95765 -0.433 0.6691
## disp 0.01293 0.01758 0.736 0.4694
## hp -0.02085 0.02072 -1.006 0.3248
## drat 1.10110 1.59806 0.689 0.4977
## wt -3.92065 1.86174 -2.106 0.0463 *
## qsec 0.54146 0.62122 0.872 0.3924
## gear 1.23321 1.40238 0.879 0.3883
## carb -0.25510 0.81563 -0.313 0.7573
## ---
## Signif.
codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.622 on 23 degrees of freedom
## Multiple R-squared: 0.8596, Adjusted R-squared: 0.8107
## F-statistic: 17.6 on 8 and 23 DF, p-value: 4.226e-08
fit$fitted.values #X(X'X)^-1X'Y, 즉
LSE 로 구한 Y hat
## Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet
4 Drive
## 22.02487 21.32832 25.58658 21.20219
## Hornet Sportabout Valiant Duster 360 Merc 240D
## 17.96643 19.98909 14.91428 23.64376
## Merc 230 Merc 280 Merc 280C Merc 450SE
## 24.85975 19.65549 19.98037 14.16584
## Merc 450SL Merc
450SLC Cadillac Fleetwood Lincoln Continental
## 15.60715 15.62770 11.46038 10.40496
## Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla
## 10.17998 26.95996 29.67308 28.70054
## Toyota Corona Dodge Challenger AMC Javelin Camaro Z28
## 24.45084 17.12020 17.93465 14.06612
## Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa
## 16.83504 27.69418 27.07562 28.13087
## Ford Pantera
L Ferrari Dino Maserati Bora Volvo 142E
## 18.82299 19.78252 13.41285 23.64339
코딩을 통한 계산으로 직접 최소제곱해 구하기
# (2) 코딩을 통한 계산으로 직접 LSE 구해보기
Y = data %>% select(mpg) %>% as.matrix()
X = cbind(1,data %>% select(-mpg) %>% as.matrix()) #mpg 를 제외한 모든 변수들
beta = solve(t(X)%*%X)%*%t(X)%*%Y
beta #추정된 계수
## mpg
## 17.88963741
## cyl -0.41459575
##
disp 0.01293240
## hp -0.02084886
## drat 1.10109551
## wt -3.92064847
## qsec 0.54145693
## gear 1.23321026
## carb -0.25509911
coef(fit) # lm() 함수로 구한 것과 동일함
## (Intercept) cyl disp hp drat wt
## 17.88963741 -0.41459575 0.01293240
-0.02084886 1.10109551 -3.92064847
## qsec gear carb
## 0.54145693 1.23321026 -0.25509911
X%*%beta # y hat(proj y
onto span X)
## mpg
## Mazda RX4 22.02487
## Mazda RX4 Wag 21.32832
## Datsun 710 25.58658
## Hornet 4 Drive 21.20219
## Hornet Sportabout 17.96643
## Valiant 19.98909
## Duster 360 14.91428
## Merc 240D 23.64376
## Merc 230 24.85975
## Merc 280 19.65549
## Merc 280C 19.98037
## Merc 450SE 14.16584
## Merc 450SL 15.60715
## Merc 450SLC 15.62770
## Cadillac
Fleetwood 11.46038
## Lincoln
Continental 10.40496
## Chrysler Imperial 10.17998
## Fiat 128 26.95996
## Honda Civic 29.67308
## Toyota Corolla 28.70054
## Toyota Corona 24.45084
## Dodge Challenger 17.12020
## AMC Javelin 17.93465
## Camaro Z28 14.06612
## Pontiac Firebird 16.83504
## Fiat X1-9 27.69418
## Porsche 914-2 27.07562
## Lotus Europa 28.13087
## Ford Pantera L 18.82299
## Ferrari Dino 19.78252
## Maserati Bora 13.41285
## Volvo 142E 23.64339
fit$fitted.values # lm() 함수로 구한 것과 동일
## Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet
4 Drive
## 22.02487 21.32832 25.58658 21.20219
## Hornet Sportabout Valiant Duster 360 Merc 240D
## 17.96643 19.98909 14.91428 23.64376
## Merc 230 Merc 280 Merc 280C Merc 450SE
## 24.85975 19.65549 19.98037 14.16584
## Merc 450SL Merc
450SLC Cadillac Fleetwood Lincoln Continental
## 15.60715 15.62770 11.46038 10.40496
## Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla
## 10.17998 26.95996 29.67308 28.70054
## Toyota Corona Dodge Challenger AMC Javelin Camaro Z28
## 24.45084 17.12020 17.93465 14.06612
## Pontiac Firebird Fiat X1-9 Porsche
914-2 Lotus Europa
![]()
![]()
따라서, 우리는 저차원에서
3 차원 벡터의 2 차원 평면으로의 정사영을 활용한 최단거리, 3 차원에서 직선과 직선 사이의 최단거리, 직선과 평면 사이의 최단거리, 2 차원에서 점과 직선 사이의 최단거리 등을 손으로 구해 보면서 정사영이 갖는 의미와 후에 고차원에서
활용될 수 있는 의의에 대해 충분히 학습한 후, 이를 회귀분석 등 고차원 데이터에 대해 소프트웨어를
활용하여 실제로 응용해 볼 수 있습니다.
######6.
Comment :
교수님과
학우분들께서 주신 피드백을 통해 벡터의 rank를 구할 때 벡터의 모양은 기본적으로 열벡터이지만, 같은 원소의 개수를 가진 행벡터를 고려하더라도 차원에는 크게 영향이 없음을 알 수 있었습니다. 이를 통해 벡터가 행벡터인지 열 벡터인지는 크게 상관이 없음을 확인할 수 있었습니다.
[Final OK by TA] Finalized
by 박정현,이상구 교수님, 김수호 : 벡터의 rank 를 구할 때 벡터의 모양
작성자 : 임동선(2017####79)작성일 : 7 월 23 일 오후 6:34
조회수 : 22
[1 주차][QNA] 벡터의 rank 를 구할 때 벡터의 모양
작성자 : 박정현(2018####21)작성일 : 7 월 8 일 오후 7:43
조회수 : 37

이전 다음
6 개의 댓글
![]()
![]()
######7.
Comment :
Quasi-Newton method를 활용하여 저의 전공 분야에서 어떻게 활용되고 있는지 알아보고, 회귀분석 분야에서 응용해
보았습니다. 또한, 오혜준 학우님과의 논의를 통해 기계공학의
최적화 문제에서 newton
method가 어떻게 쓰이는지 알아볼 수 있었던 좋은 기회였습니다.
[Final OK by
TA] Finalized by
오혜준, 박정현 : 기계공학에서의 newton method 사용 사례(추가 답변)
+ [3 주차][응용실습] Newton method 응용: Quasi- Newton method 를 활용한 최적화
작성자 : 임동선(2017####79)작성일 : 7월 24일 오후 5:00 조회수 :
11
안녕하세요. 박정현 학우분께서 newton method 를 여러 분야에서 최적화를 시키는데 있어 사용한다고 이야기하신 거를 바탕으로
저도 저희 학과에서 newton method 를
사용한 사례와 강의를 바탕으로 추가 답변을 통해 정리해보았습니다.
기계공학과에서 들은 '로봇공학입문' 수업에서 newton method
방법을 통한 inverse kinematics(역기구학)을 사례로 첨부하였습니다.
로봇팔의 기준 위치를 그다음 로봇 팔과의 각도가 주어졌을때 역으로 풀어내는 방식으로 이때 변환행렬을
뉴턴메소드에 대입하여 계산하는 방식입니다.
이번 finalize 를 통해 박정현 학우분의 실습 사례를 통해 newton method
의 응용을 공부할 수 있었고 저도 제가 아는 사례와 지식을 공유할 수 있어 좋은 시간이었습니다.
![]()
[3 주차][응용실습] Newton method 응용: Quasi- Newton method 를 활용한 최적화
작성자 : 박정현(2018####21)작성일 : 7월 21일 오후 7:16 조회수 :
16
수업을 듣고 Newton method 에 대해 추가적으로 학습하던 중,이를 응용한 quasi-newton method 가 현재 가장 활발히 사용되고 있는 최적화 알고리즘 중 하나라는 것을 알게 되었습니다.
Newton method
는 많은 최적화 방법들의 기반이 됩니다. 기본적으로는 함수의 근을 찾는 데 쓰이지만 이를 도함수에 활용하여 헤시안 행렬(이계도함수의 행렬)과 결합하면 함수의 최댓값이나 최솟값을 찾는 최적화 문제에 응용이 가능하기 때문입니다. 하지만, 최소화 또는 최대화하고자 하는 목적함수가 복잡한 비선형 꼴일 경우 이를 직접적으로 활용하기에 많은 시간과 메모리가
소요됩니다. 이는 헤시안 행렬을 반복적으로 계산하고, 저장해야
하는 문제점 때문입니다. Quasi-Newton method
는 이를 개선하여 헤시안 행렬을 매번 계산하지 않고 approximate 하여
computation time 을
줄이고 저장 공간의 문제점도 줄인
알고리즘이라고 합니다. Quasi - newton
method 중에서도 헤시안 행렬의 근사 방법에 따라 여러 방법들이 존재하는데,저는 그중 BGFS versiond
의 방법을 활용하였습니다.
저는 이를 회귀(regression) 문제에 적용하여, X 와 Y 간 명백한 비선형 관계가 존재할 경우 각 항들에 붙는 최적의 베타계수를 찾는 최적화 문제에 적용해 보았습니다. 우선, 각각의 x 와 y 간 관계를 plot 과 gam 모델을 이용해 알아보고,( gam 은 x 변수들의 additivity 를
활용해 지정된 flexibility
의 nonlinear
model 을 활용하여 Y 를 예측하는 통계적 비선형 모델의 일종으로, gam 패키지는 각 X 와 Y 의
관계를 한눈에 볼 수 있게 시각화
가능하다는 점에서 통계적 분석에 많이 활용됩니다) 각 X 와 Y 의 관계를 설명할 수 있는 plausible 한
함수를 활용해 모델을 가정하였습니다. 이후, quasi-newton method
를 활용하여 계수를 최적화하였고, 이를
통해 fitted value 를 도출하여 시각화해 보았습니다!
3 주차실습 2_박정현
![]()
Junghyun Park 2021
7 21
3주차 실습 2 : Newton- Rhapson method의 응용인 quasi-newton method를 이용한 회귀계수
구하기
![]()
![]()
![]()