PBL Report (자기평가서, QnA 활동 상황 포함)
2020년 여름 도전학기
Final PBL Report
Class: Basic Math for AI
(인공지능을 위한 기초수학)
Prof. Sang-Gu LEE
과제함 Due day : 2020. 08. 29 (in HW box in LMS)
Name (이름) : 김진웅, 박진형, 천가영, 유가이 올렉산드르, 이승재, 김범준, 채희준, 나종진, 임성규, 김정한, 이상현, ... , 정원철
(Find your Team member (3~5) in March or I will make a tentative Team) 팀원을 스스로 겨체 가능합니다. 중간고사 전후로 확정 예정. Team will be Fixed in Midterm period, after I grade your PBL and Project proposal. 제안서중 선정된 주제만 실제 지도받으면서 프로젝트 진행하면 됩니다.)
English Version MS Word file PBL report (Form and Sample) :
Download: http://matrix.skku.ac.kr/PBL-Form/PBL-Report-Form-English.docx
Sample [예시] (학생들의 질문/답변/활동 기록: http://matrix.skku.ac.kr/math4ai/PBL-Record/
(영어) http://matrix.skku.ac.kr/2018-album/LA-PBL.htm (선형대수학)
http://matrix.skku.ac.kr/2015-album/2015-F-LA-Sep-Record.pdf
http://matrix.skku.ac.kr/2019-Album/DM-PBL/index.htm (이산수학)
http://matrix.skku.ac.kr/Cal-Book1/Calculus-1/index.htm (미적분학)
http://matrix.skku.ac.kr/Cal-Book1/Calculus-2/index.htm (미적분학)
(학생들의 질문/답변/활동 기록: http://matrix.skku.ac.kr/2020-Math4AI-PBL/ Basic Math for AI)
Ch 1장. Participation [참여평가] (10점)
(1) State more than 10 Math Definitions and concepts what you learned in Part 1, 2, 3, ...
1주차 |
벡터, norm, 벡터공간, 부분공간, 일차결합, 일차독립, 일차종속, 기저, 계수, 초평면, 정사영 |
2주차 |
초평면, 정사영, 고윳값, 고유벡터, 대각화, SVD, 고윳값 분해, 이차형식, pseudo-inverse, |
3주차 |
수렴, 극한, 미분가능, 도함수, 연쇄법칙, 그래디언트, 방향도함수, Taylor 정리, 임계점, 헤시안 행렬 |
4주차 |
Gradient Descent Algorithm, 중적분, 뉴턴의 방법, conjugate gradient method, Fubini의 정리, step-size, exact line search, optimization, 극소 극대 판정법, 안장점, |
5주차 |
순열, 조합, 확률, 이산확률분포, 포아송분포, 평균, 분산, 표준편차, 중앙값, 조건부 확률, 표본평균, 표본분산 |
6주차 |
연속확률분포, 평균의 성질, 분산의 성질, 공분산, 상관계수, 정규분포, 정규분포 곡선의 성질, 표준정규분포, 모수, 이항분포의 정규근사, 지수분포 |
7주차 |
신경망, 활성화 함수, 노드, 역전파법, 경사하강법, 은닉층, 입력층, 출력층, sigmoid 함수 |
Part 0. Briefly reviewed the basic functions of Python, Sage and R, Basic concept of Power Method(거듭제곱법), Basic concept of MNIST 데이터셋을 활용한 손 글씨 숫자 인식(패턴인식), Briefly familiarized myself with the principle of work of AlphaGo…
Part 0 (인공지능 개론)
1. Python is an interpreted, high-level, general-purpose programming language. Python has become highly popular due to its abundance of libraries. Each Python library is application-oriented that was developed to address problems. Mathematical operations are most preferably carried out in Python due to its focus on utility and minimal programming jargon. There are several libraries that can be used to carry out mathematical operations with Python. Ex.: Math, Numpy, SciPy, Scikit-learn etc.
2. SageMath is a free open-source mathematics software system licensed under the GPL. It builds on top of many existing open-source packages: NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R and many more. Access their combined power through a common, Python-based language or directly via interfaces or wrappers.
3. R is a programming language for statistical data processing and graphics, and is a free and open source computing environment under the GNU Project.
4. Power method is an eigenvalue algorithm: given a diagonalizable matrix A, the algorithm will produce a number λ, which is the greatest (in absolute value) eigenvalue of A, and a nonzero vector v, which is a corresponding eigenvector of λ, that is Av = λv.
5. MNIST(Modified National Institute of Standards and Technology) database is a voluminous database of handwritten numbers. The database is a standard proposed by the US National Institute of Standards and Technology for the purpose of calibrating and comparing image recognition methods using machine learning primarily based on neural networks.
6. AlphaGo is a "Go game" program developed by Google DeepMind in 2015. AlphaGo combines a technique that provided a major breakthrough in the power of "Go game" software in 2007-2012 (Monte-Carlo tree search) and recent advances in machine learning, namely deep learning with multilevel neural networks.
<1> 벡터, 노름, 내적, 행렬, 행렬곱, 대각선행렬, 단위행렬, 전치행렬, 대칭행렬, 하삼각행렬, 상삼각행렬, 역행렬, 행렬식, 여인자, 수반행렬, 선행주소행렬식
<2> 선형연립방정식, 계수행렬, 첨가행렬, 기본행연산, 기본행렬, 치환행렬, REF, RREF, Gauss 소거법, Gauss-Jordan 소거법
<3> 선형변환, 표준행렬, 핵, 치역, 단사, 전사
<4> 벡터공간, 부분공간, 일차결합, 일차독립, 일차종속, span, 기저, 차원, 행공간, 열공간, 영공간, rank, nullity
<5> 정사영, 직교성분, 초평면, 정규직교벡터, 정규직교기저, Gram-Schmidt 정규직교화법, full column rank, LU분해, QR분해, 최소제곱해
<6> 고유값, 고유벡터, 고유공간, 직교행렬, 대각화, 직교대각화, 고유값분해, 특이값, 특이벡터, SVD, 유사역행렬
<7> 이차형식, 양의정부호, 음의정부호, 부정부호, 주축정리
<8> 접선, 뉴턴방법, 다변수함수, 매개변수 방정식, 편도함수, 방향도함수, 그래디언트, 헤시안, 임계점, 안장점, 극대극소판정법, 경사하강법, Jacobian
<9> 표본평균, 표본푼산, 표본표준편차, 중위수, 4분위수, 백분위수, IQR, 순열, 조합, 중복집합, 중복순열, 중복조합, 표본공간, 사건, 확률, 조건부확률, 베이즈정리
<10> 확률변수, 확률분포, 기대값, 분산, 표준편차, 표준화 확률변수, 베르누이분포, 이항분포, 포아송분포, 균등분포, 정규분포, 표준정규분포, 지수분포, 중심극한정리, 결합확률분포, 주변확률분포, 공분산, 상관계수, 공분산행렬
<11> 주성분, 적재계수, 주축, 데이터행렬, 센터링된행렬, 데이터행렬의 공분산행렬, 주성분화 데이터행렬, 주성분 score, 차원축소, PCA, 신경망, 활성화함수, 오차역전파법
<1> 벡터, 노름, 내적, 행렬, 행렬곱, 대각선행렬, 단위행렬, 전치행렬, 대칭행렬, 하삼각행렬, 상삼각행렬, 역행렬, 행렬식, 여인자, 수반행렬, 선행주소행렬식
1. 벡터: 스칼라를 모은 순서짝
2. 노름: 벡터 각 성분의 제곱합의 제곱근은 벡터의 노름
3. 내적: 두 벡터의 각 성분의 곱의 합은 두 벡터의 내적
4. 행렬: 스칼라를 모은 직사각형 단위
5. 행렬곱: 한 행렬의 행과 다른 행렬의 열의 내적의 합은 두 행렬의 곱
6. 대각선행렬: 주대각선성분 이외의 성분이 0인 정사각행렬
7. 단위행렬: 주대각선성분이 1인 대각선행렬
8. 전치행렬: 행렬의 행을 열로 한 행렬은 행렬의 전치행렬
9. 대칭행렬: 행렬의 전치행렬이 행렬인 정사각행렬
10. 하삼각행렬: 주대각선성분의 위 모든 성분이 0인 정사각행렬
11. 상삼각행렬: 주대각선성분의 아래 모든 성분이 0인 정사각행렬
12. 역행렬: 정사각행렬과의 곱이 단위행렬이 되는 행렬은 정사각행렬의 역행렬
13. 행렬식: 정사각행렬에서 각 치환에 대해 각 행과 그 행을 치환한 열의 원소들의 곱과 그 치환의 부호화 함수값의 곱의 합*은 정사각행렬의 행렬식
14. 여인자: 정사각행렬의 한 행과 한 열을 없앤 행렬의 행렬식과 없앤 행·열에 대응하는 성분의 위치 부호를 곱한 것은 정사각행렬 행·열 성분의 여인자
15. 수반행렬: 정사각행렬 각 성분의 여인자를 모은 행렬의 전치행렬
16. 선행주소행렬식: 정사각행렬의 어떤 수의 크기의 좌상단 정사각행렬의 행렬식은 행렬의 그 수의 선행주소행렬식
<2> 선형연립방정식, 계수행렬, 첨가행렬, 기본행연산, 기본행렬, 치환행렬, REF, RREF, Gauss 소거법, Gauss-Jordan 소거법
1. 선형연립방정식: 일차방정식을 모은 연립방정식
2. 계수행렬: 선형연립방정식의 계수만을 모은 행렬은 선형연립방정식의 계수행렬
3. 첨가행렬: 행렬에 행렬을 붙인 행렬, 선형연립방정식의 계수행렬에 상수항벡터를 붙인 행렬은 선형연립방정식의 첨가행렬
4. 기본행연산: 다음의 한 연산 (1) 행렬의 두 행을 서로 바꾼다 (2) 한 행에 비영스칼라배를 한다. (3) 한 행에 비영스칼라배한 것을 다른 행에 더한다.
5. 기본행렬: 단위행렬에 기본행연산을 한 번 적용해서 얻은 행렬
6. 치환행렬: 단위행렬에 행렬의 두 행을 서로 바꾸는 연산을 한 번 적용해서 얻은 행렬
7. REF: (1) 0인 행은 행렬의 맨 아래에 위치 (2) 각 행의 첫 성분은 선행성분 1 (3) 후행의 선행성분은 전행의 것보다 오른쪽에 위치인 행렬은 REF
8. RREF: REF인 행렬에서 선행성분의 열의 나머지 성분이 0인 행렬은 RREF
9. Gauss 소거법: 기본행연산으로 행렬을 REF로 만드는 것
10. Gauss-Jordan 소거법: 기본행연산으로 REF인 행렬을 RREF로 만드는 것
<3> 선형변환, 표준행렬, 핵, 치역, 단사, 전사
1. 선형변환: ① 벡터의 합의 변환값은 변환한 각 벡터의 합 ② 스칼라배한 벡터의 변환값은 변환한 벡터의 스칼라배인 변환
2. 표준행렬: 벡터와의 곱이 선형변환한 벡터인 행렬은 선형변환의 표준행렬
3. 핵: 선형변환한 벡터가 영벡터가 되는 벡터 집합은 선형변환의 핵
4. 치역: 선형변환한 벡터 집합은 선형변환의 치역
5. 단사: 선형변환한 두 벡터가 서로 같은 경우 두 벡터가 서로 같을 때 선형변환은 단사
6. 전사: 모든 벡터가 선형변환한 벡터일 때 선형변환은 전사
<4> 벡터공간, 부분공간, 일차결합, 일차독립, 일차종속, span, 기저, 차원, 행공간, 열공간, 영공간, rank, nullity
1. 벡터공간: 2개의 기본성질과 8개의 연산성질을 만족하는 비공집합인 벡터집합
2. 부분공간: ① 벡터공간의 부분집합이면서 ② 자신도 벡터공간인 비공집합은 벡터공간의 부분공간
3. 일차결합: 벡터집합 원소들의 스칼라 배의 합으로 이루어진 벡터는 벡터집합의 일차결합
4. 일차독립: 벡터집합의 일차결합이 영벡터이기 위한 각 계수가 모두 0일 때 벡터집합은 일차독립
5. 일차종속: 일차독립이 아닌 벡터집합은 일차종속
6. span: 벡터집합의 모든 일차결합인 벡터집합은 벡터집합의 span
7. 기저: ① 벡터집합이 일차독립 ② 벡터집합의 span이 벡터공간일 때 벡터집합은 벡터공간의 기저
8. 차원: 벡터공간 기저의 벡터 개수는 벡터공간의 차원
9. 행공간: 행렬의 행벡터집합의 span인 벡터공간은 행렬의 행공간
10. 열공간: 행렬의 열벡터집합의 span인 벡터공간은 행렬의 열공간
11. 영공간: 행렬과의 곱이 영벡터인 벡터 집합인 벡터공간은 행렬의 영공간
12. rank: 행렬의 행공간의 차원은 행렬의 rank
13. nullity: 행렬의 영공간의 차원은 행렬의 nuliity
<5> 정사영, 직교성분, 초평면, 정규직교벡터, 정규직교기저, Gram-Schmidt 정규직교화법, full column rank, LU분해, QR분해, 최소제곱해
1. 정사영: 벡터가 벡터공간 상에 나타나는 벡터는 벡터의 벡터공간 상의 정사영
2. 직교성분: 벡터와 벡터의 정사영의 차는 벡터의 직교성분
3. 초평면: 벡터와 직교인 벡터집합은 벡터의 초평면
4. 정규직교벡터: 노름이 1이고 다른 벡터들과 직교하는 벡터
5. 정규직교기저: 벡터집합의 원소가 정규직교벡터인 기저
6. Gram-Schmidt 정규직교화법: 임의의 기저로부터 정규직교기저를 구하는 방법
7. full column rank: 행렬의 열벡터가 서로 일차독립일 때 행렬은 full column rank
8. LU분해: 행렬의 모든 선행주소행렬식이 0이 아닐 때 행렬을 치환행렬과 함께 단위하삼각행렬과 상삼각행렬로 분해하는 것
9. QR분해: 행렬이 full column rank일 때 행렬을 행렬의 열공간의 정규직교기저를 열로 하는 직교행렬과 상삼각행렬로 분해하는 것
10. 최소제곱해: 선형연립방정식의 오차를 최소화하는 해
<6> 고유값, 고유벡터, 고유공간, 직교행렬, 대각화, 직교대각화, 고유값분해, 특이값, 특이벡터, SVD, 유사역행렬
1. 고유값: 스칼라와 어떤 벡터의 곱이 정사각행렬과 그 벡터의 곱과 같을 때 스칼라는 정사각행렬의 고유값
2. 고유벡터: 정사각행렬의 한 고유값과의 곱이 정사각행렬과의 곱과 같은 비영벡터는 그 고유값에 대응하는 정사각행렬의 고유벡터
3. 고유공간: 고유값에 대응하는 정사각행렬의 고유벡터 집합은 고유값에 대응하는 정사각행렬의 고유공간
4. 직교행렬: 행렬의 역행렬이 행렬의 전치행렬인 정사각행렬
5. 대각화: 정사각행렬로부터 행렬의 고유공간의 기저 즉, 고유벡터를 열로 하는 행렬과 행렬의 고유값을 주대각선성분으로 하는 대각선행렬을 구하는 것
6. 직교대각화: 정사각행렬로부터 행렬의 고유공간의 정규직교기저 즉, 정규직교화된 고유벡터를 열로 하는 행렬과 행렬의 고유값을 주대각선성분으로 하는 대각선행렬을 구하는 것
7. 고유값분해: 대각화를 이용하여 행렬을 행렬의 고유값과 행렬의 고유벡터로 이루어진 행렬들로 분해하는 것
8. 특이값: 행렬의 전치행렬과 행렬의 곱의 고유값의 제곱근은 행렬의 특이값
9. 특이벡터: 행렬의 전치행렬과 행렬의 곱을 직교대각화하는 직교행렬의 열벡터들과 행렬과 행렬의 전치행렬의 곱을 직교대각화하는 직교핼렬의 열벡터들은 행렬의 특이벡터
10. SVD: 행렬을 행렬의 특이값을 성분으로 하는 대각선행렬과 행렬의 특이벡터를 열로 하는 두 개의 직교행렬로 분해하는 것
11. 유사역행렬: SVD로 행렬의 역행렬 역할을 하는 행렬은 행렬의 유사역행렬
<7> 이차형식, 양의정부호, 음의정부호, 부정부호, 주축정리
1. 이차형식: 이차방정식에서 모든 이차항의 합인 식
2. 양의정부호: 이차형식이 0보다 클 때 이차형식은 양의정부호
3. 음의정부호: 이차형식이 0보다 작을 때 이차형식은 음의정부호
4. 부정부호: 이차형식이 미지수에 따라 0보다 크기도 하고 0보다 작기도 할 때 이차형식은 부정부호
5. 주축정리: 변수변환으로 이차형식의 혼합항을 없애는 것
1. Quadratic form is a function on a vector space, specified by a homogeneous polynomial of the second degree in the coordinates of the vector.
2. Principal axis is a certain line in a Euclidean space associated with an ellipsoid or hyperboloid, generalizing the major and minor axes of an ellipse or hyperbola. The principal axis theorem states that the principal axes are perpendicular, and gives a constructive procedure for finding them.
1. Function(함수) is a binary relation over two sets that associates to every element of the first set exactly one element of the second set.
2. Riemann sum is a certain kind of approximation of an integral by a finite sum. One very common application is approximating the area of functions or lines on a graph, but also the length of curves and other approximations.
3. Partial derivative of a function of several variables is its derivative with respect to one of those variables, with the others held constant.
<8> 접선, 뉴턴방법, 다변수함수, 매개변수 방정식, 편도함수, 방향도함수, 그래디언트, 헤시안, 임계점, 안장점, 극대극소판정법, 경사하강법, Jacobian
1. 접선: 그래프의 한 점을 지나고 기울기가 그 점의 미분계수인 직선은 그래프의 그 점을 지나는 접선
2. 뉴턴방법: 함수의 근을 접선과 도함수 구하기를 반복하여 구하는 방법
3. 다변수함수: 독립 변수가 여러 개인 함수
4. 매개변수 방정식: 각 변수를 새로운 변수로 정의한 방정식
5. 편도함수: 다변수함수를 한 변수만으로 미분한 함수는 함수의 그 변수로의 편도함수
6. 방향도함수: 다변수함수를 한 단위벡터의 방향으로 미분한 함수는 함수의 그 단위벡터 방향으로의 방향도함수
7. 그래디언트: 함수의 각 편도함수를 성분으로 하는 벡터는 함수의 그래디언트
8. 헤시안: 함수의 각 2계편도함수를 성분을 하는 행렬은 함수의 헤시안
9. 임계점: 어떤 한 점에서의 함수의 그래디언트가 영벡터인 그 점은 함수의 임계점
10. 안장점: 극대·극소 모두 아닌 임계점
11. 극대극소판정법: 함수의 헤시안의 선행주소행렬식 부호 또는 고유값 부호 즉, 부호성으로 함수의 임계점이 극대·극소·안정점임을 판정하는 방법
12. 경사하강법: 함수의 극소값을 음의 그래디언트 구하기를 반복하여 구하는 방법
13. Jacobian: 원래의 미지수를 새로운 미지수로 편미분한 편도함수를 원소로 하는 행렬의 행렬식을 새로운 미지수를 원래의 미지수로 변환하는 함수의 Jacobian
<9> 표본평균, 표본푼산, 표본표준편차, 중위수, 4분위수, 백분위수, IQR, 순열, 조합, 중복집합, 중복순열, 중복조합, 표본공간, 사건, 확률, 조건부확률, 베이즈정리
1. 표본평균:
2. 표본분산:
3. 표본표준편차:
4. 중위수: 표본을 크기순에서 2등분하는 위치에 있는 수
5. 4분위수: 표본을 크기순에서 4등분하는 위치에 있는 수 3개
6. 백분위수: 표본을 크기순에서 백등분하는 위치에 있는 수 99개
7. IQR: 4분위수에서 Q₃-Q₁
8. 순열: 순서있는 경우의 수
9. 조합: 순서없는 경우의 수
10. 중복집합: 중복하는 원소가 있는 집합
11. 중복순열: 중복집합에서 순서대로·중복하여 고르는 경우의 수
12. 중복조합: 중복집합에서 순서없이·중복하여 고르는 경우의 수
13. 표본공간: 전체 경우의 집합
14. 사건: 특정 경우의 집합
15. 확률: 사건이 일어나는 비율
16. 조건부확률: 특정 사건이 일어났을 때 한 사건의 확률
17. 베이즈정리: 사전확률과 사후확률의 관계를 조건부확률로 나타낸 식
<10> 확률변수, 확률분포, 기대값, 분산, 표준편차, 표준화 확률변수, 베르누이분포, 이항분포, 포아송분포, 균등분포, 정규분포, 표준정규분포, 지수분포, 중심극한정리, 결합확률분포, 주변확률분포, 공분산, 상관계수, 공분산행렬
1. 확률변수: 표본공간의 모든 표본에 실수를 대응시켜 사건화한 함수
2. 확률분포: 확률변수가 가지는 함수값에 그 값을 가질 확률을 대응시킨 함수
3. 기대값: 확률변수 함수값의 분포평균
4. 분산: 확률변수 함수값이 기대값을 기준으로 분포하는 정도를 나타낸 수
5. 표준편차: 분산의 제곱근
6. 표준화 확률변수: 확률변수에 그 기대값을 빼고 표준편차로 나눈 확률변수
7. 베르누이분포: 사건의 확률이 어떤 수인 사건이 일어나는 경우의 확률변수의 확률분포
8. 이항분포: 사건의 확률이 어떤 수인 사건이 번 중 일어나는 경우의 확률변수의 확률분포
9. 포아송분포: 단위시간에 평균 어떤 수만큼 일어나는 시균등확률사건이 일어나는 경우의 확률변수의 확률분포
10. 균등분포: 일정구간에서만 확률을 갖고 그 확률이 일정한 확률변수의 확률분포
11. 정규분포: 확률밀도함수가 인 확률변수의 확률분포
12. 표준정규분포: 기대값이 0, 분산이 1인 정규분포
13. 지수분포: 단위시간에 평균 어떤 수만큼 일어나는 시균등확률사건이 일어난 다음 일어날 때까지 걸리는 시간의 확률변수의 확률분포
14. 중심극한정리: 평균과 분산이 정해진 모집단으로부터 확률표본을 추출하였을 때 확률표본의 크기가 충분히 크다면 표본평균은 정규분포를 따른다.
15. 결합확률분포: 여러 확률변수가 가지는 함수값들에 그 일어날 확률을 대응시킨 함수
16. 주변확률분포: 결합확률분포에서 하나의 확률변수만의 확률분포
17. 공분산:
18. 상관계수:
19. 공분산행렬: 확률변수의 분산과 공분산으로 이루어진 행렬
<11> 주성분, 적재계수, 주축, 데이터행렬, 센터링된행렬, 데이터행렬의 공분산행렬, 주성분화 데이터행렬, 주성분 score, 차원축소, PCA, 신경망, 활성화함수, 오차역전파법
1. 주성분: 데이터 분포를 잘 따르면서 서로 연관성 없도록 한 기존변수 일차결합 변수
2. 적재계수: 주성분을 이루는 확률변수 일차결합 계수
3. 주축: 주성분의 적재계수 백터
4. 데이터행렬: 각 표본을 행, 각 확률변수를 열로하는 행렬
5. 센터링된행렬: 데이터행렬에서 각 성분에 해당 열평균을 뺀 행렬
6. 데이터행렬의 공분산행렬:
7. 주성분화 데이터행렬: 각 표본을 행, 각 주성분을 열로하는 행렬
8. 주성분 score: 주성분화 데이터행렬의 열벡터
9. 차원축소: 데이터 분포를 따르면서 데이터 차원을 줄이는 것
10. PCA: 데이터 분포를 잘 따르는 주요 주성부으로 이루어진 데이터 공간으로 데이터를 변환하는 차원축소
11. 신경망: 입력층에서 데이터를 받아 다음층의 가중치와 활성화함수를 적용해 다음층의 출력을 구하기를 계속하여 출력층에 결과를 내는 모델
12. 활성화함수: 신경망 각 층의 출력을 결정하는 함수
13. 오차역전파법: 오차를 줄이기 위해 각 층에 역전파된 오차로 그 층의 가중치를 갱신하는 방법
* 1, 2, 3 차 행렬의 행렬식 :
답:
(2) State more than 5 things that you know/can/find ... after you studied the first Part 1, 2,..
1주차 |
벡터, norm, 벡터공간, 부분공간, 일차결합 |
2주차 |
초평면, 정사영, 고윳값, 고유벡터,SVD, |
3주차 |
연쇄법칙, 그래디언트, 방향도함수, Taylor 정리, 임계점 |
4주차 |
Gradient Descent Algorithm, 중적분, 뉴턴의 방법, conjugate gradient method, Fubini의 정리, step-size, |
5주차 |
이산확률분포, 포아송분포, 평균, 분산, 표준편차, 중앙값, |
6주차 |
분산의 성질, 공분산, 상관계수, 정규분포, 정규분포 곡선의 성질, 표준정규분포, 모수, 이항분포의 정규근사, |
7주차 |
노드, 역전파법, 경사하강법, 은닉층, 입력층, |
[1] 일차종속 : 위 그림에서처럼 1번째 행과 2~3번째 행(혹은 열)간의 관계가 성립되는 상황입니다.
[2] 일차독립 : 위 그림에서와 달리 행/열 각각을 기준으로 관계가 성립하지 않는 상황입니다. -> 역행렬을 만들 수 있는 조건이 됩니다. ( 가우스 소거법을 했을 때 pivot이 0이 되지 않기 때문)
[3] 가우스 (Jordan) 소거법 : 위 그림에서처럼 행간 연산을 통해 행렬 A에서 U로 만드는 과정이며 (Jordan)은 행렬 U에서 R로 만드는 과정입니다.
[4] (R)REF : 행렬 A에서 가우스 소거법을 통해 만들어진 U의 형태입니다. (R)REF는 R.
[5] (기약)행 사다리꼴: 행 사다리꼴은 위 그림의 U와 같은 형태이며, (기약)행 사다리꼴은 R과 같습니다. 즉 가우스 소거법은 A를 행 사다리꼴 형태인 REF로 만드는 과정이고, 가우스 (Jordan) 소거법은 REF를 기약 행 사다리꼴인 RREF로 만드는 과정입니다.
[6] rank : 위 그림의 (R)REF 형태에서 0이 아닌 행의 개수입니다. (즉, pivot의 개수)
[7] nullity : n(열 개수) - r(rank).
[8] 기저 : 일차종속이던 A를 REF와 RREF로 만들어 줌으로써 일차독립이 되었고 보다시피 span하고 있습니다. -> 이때 기저는 pivot이 있는(영벡터가 아닌) 벡터로서 [1,2,0,-2], [0,0,1,2]가 됩니다.
[9] 차원 : 차원은 기저의 개수(굉장히 rough하게 표현)이며 위의 예시에서는 2가 됩니다.
[10] 선형변환: F(v1+v2) = F(v1) + F(v2), F(kv) = kF(v) 두 조건을 만족시키면 선형성이 있다(linear하다)라고 하는데 이런식으로 변환시켜주는 함수를 선형변환이라고 합니다.
[11] 고유벡터: 선형변환에 의한 변환 결과가 자기 자신의 상수배가 되는 0이 아닌 벡터입니다. 즉, 선형변환에 의해 방향은 보존되고 scale만 변화되는 방향벡터라고 볼 수 있습니다.
[12] 고유값: 고유벡터의가 정의될 때의 상수배이며 고유벡터의 변화되는 scale의 정도입니다.
[13] 고유값 분해: 고유값들을 대각원소로 하는 대각행렬(즉, 정방행렬을 전제함)을 A라고 하고, 행렬 A의 고유벡터들을 열벡터로 하는 행렬을 P라고 했을 때 아래와 같은 식으로 나타내는 것입니다.
[14] 특이값 분해(SVD): 고유값 분해가 정방행렬에 대해서만 가능한 반면, 정방행렬이 아닌, 즉 행과 열의 크기가 다른 행렬을 분해하는 것입니다.
[15] 경사하강법: 손실함수의 손실을 최소화하기 위해 기울기를 점점 작게 근사시키며 최적화시키는 과정입니다.
[16] Jacobian: 다변수 벡터함수에 대한 일차미분 형태입니다.
[17] Hessian: 다변수 벡터함수에 대한 2차미분 형태. 경사하강법처럼 최적화에 사용되는데, 어떠한 점에 점점 다가가며 2차 항까지 근사시킬 수 있습니다. 또한 극소, 극대, 임장점 등을 찾는데도 용이하게 사용됩니다.
[18] 베르누이분포: 시행의 결과가 오직 두가지인 분포
[19] 이항분포: 베르누이 시행을 n번 할 때, 사건이 발생한 횟수를 확률변수 x로 하는 확률분포(베르누이에서 시행횟수를 n회로 늘림)
[20] 기하분포: 처음 성공이 나오기까지 시행한 횟수를 확률변수 x로 할 때의 확률분포(음이항분포에서 r이 1이 될 때)
[21] 음이항분포: 성공확률이 p, r번의 실패가 나오기 전까지 발생한 성공 횟수가 확률변수 x인 확률분포(음이항분포에서 r이 무한대가 되고, p가 1에 가까워지면 푸아송분포가 됨)
[22] 포아송분포: 단위 시간 안에 발생한 사건 횟수를 확률변수 x로 하는 확률분포(이항분포에서 시행횟수를 무한대로 보내고, 사건 발생확률을 0으로 보냄)
[23] 초기하분포: 모집단에서 크기가 n인 표본을 뽑을 때, 표본 안에 우리가 원하는 원소가 x개 있을 확률분포(이항분포에서 복원추출을 비복원추출로 바꿈)
[24] 다항분포: 시행의 결과가 k개의 사건이고 각 사건이 발생할 확률이 p1..pk일 때 n번의 시행에서 각 사건이 x1...xn번 일어날 확률분포(이항분포에서 시행의 결과로 발생하는 사건의 종류를 늘림)
[25] Input layer, hidden layer, output layer로 이루어진 신경망에서 활성화함수를 통해 학습을 하면서 순전파를 통해 loss를 구하고 이를 반대로 경사하강법을 통해 역전파를 하며 가중치를 최적화함
역행렬 구하기, 행렬식 구하기, 선형연립방정식 해 구하기, 정사영 구하기, Gram-Schmidt 정규직교화법, QR분해, 선형연립방정식 최소제곱해 구하기, 고유값 구하기, 고유벡터 구하기, 대각화, 직교대각화, SVD, 주축정리, 뉴턴방법, 극대극소판정법, 경사하강법
베이즈정리, 정규분포 확률 구하기, 공분산행렬 구하기, PCA, 오차역전파법
1. 역행렬 구하기: [행렬이 가역]
① RREF법:
② 수반행렬법:
2. 행렬식 구하기:
① 여인자전개법:
② [행렬]
3. 선형연립방정식 해 구하기:
① Gauss 소거법으로 첨가행렬을 REF로 → Gauss-Jordan 소거법으로 첨가행렬을 RREF로
② [계수행렬이 가역]
4. 정사영 구하기: ,
5. Gram-Schmidt 정규직교화법:
→
→
6. QR분해: [행렬 가 full column rank]
의 열벡터를 Gram-Schmidt 정규직교화법
→ 정규직교화한 벡터를 열로 하는
→ 인 상삼각행렬
→
7. 선형연립방정식 최소제곱해 구하기: [행렬 가 full column rank]
①
② QR분해 →
[행렬 는 임의의 행렬]
③ SVD →
8. 고유값 구하기: 행렬 의 특성방정식
풀기
9. 고유벡터 구하기: 고유값 에 대한 선형연립방정식
풀기
10. 대각화: [행렬 는 full column rank]
의 고유값 구하기
→ 의 고유벡터 구하기
→ 고유벡터를 열로 하는 와 고유값을 주대각선성분으로 하는 대각선행렬
11. 직교대각화: [행렬 는 대칭행렬]
의 고유값 구하기
→ 의 고유벡터 구하기
→ 서로 같은 고유값에 대응하는 고유벡터들 정규직교화
→ 나머지 고유벡터들 정규화
→ 정규직교화한 고유벡터를 열로 하는 직교행렬 와 고유값을 주대각선성분으로 하는 대각선행렬
→
12. SVD:
행렬 에서 대칭행렬
를 직교대각화
→ 직교행렬 와 대각선행렬
→ 를 열로 하는 직교행렬
→
○ 이제, 왜 singular value 는 고유값의 square root이고,
의 대각선성분으로 고유값이 아닌 singular value
를 갖는지 알아보겠습니다.
직교대각화가능한 와 이를 직교대각화하는 직교행렬
로부터, 무엇이
와 직교닮음인지 알 수 있습니다.
와
가 직교닮음인 것입니다.
를 직접 계산해보면
입니다.
즉, 입니다.
마찬가지로, 와
는 직교닮음이고,
입니다. singular value
가 왜 고유값의 square root인지 알아보겠습니다.
직교대각화가능한 의
, 여기에서는
가 대각선성분으로
의 고유값
을 갖는 대각선행렬이 됩니다. (7.을 떠올립시다) 따라서
의 식이 세워지게 되고 singular value
는
의 square root,
가 되는 것입니다. 마찬가지로,
의 대각선성분으로 고유값
이 아닌 singular value
를 갖는 이유는,
가 대각선성분으로 고유값
를 가지는 것이고,
는 대각선성분으로 singular value
를 갖게되는 것이기 때문입니다. 이로써, 왜 singular value
는 고유값의 square root이고,
의 대각선성분으로 고유값이 아닌 singular value
를 갖는지 알아보았습니다.
<주요 포인트>
=
인데, D에는 고유값들인 가 저장 되어 있으므로,
에는
들이 저장되어 있어야 함.
13. 주축정리:
이차방정식 의 대칭행렬
→ 의 고유값 구하기 →
[]
→ 의 정규직교화된 고유벡터 구하기
→ 정규직교화된 고유벡터를 열로 하는 직교행렬
→
→
14. 뉴턴방법:
→
15. 극대극소판정법:
함수의 임계점 에서 함수의 헤시안
→
→
16. 경사하강법:
→ until
→ line search로 구하기
→
1. 베이즈정리:
2. 정규분포 확률 구하기:
3. 공분산행렬 구하기:
① 계산: (1) 와
를 구한다 (2)
를 구한다 (3)
② 코드: r의 cov()함수
4. PCA:
주성분분산
축소된 주성분화 데이터행렬
코드: r의 princomp()함수
5. 오차역전파법:
(1) 이전층에 오차 역전파하기
(2) 현재층의 가중치 갱신하기
(3) State your meaningful Comment/Answer/Discussions in Discussion/QnA.
[Re-Final OK by SGLee] [답변] [재질문 by. 나종진]해공간과kernel의 차이 [Final OK by SGLee] Q by 박지수, Finalized by 한수현, 해공간을 구하는 법, Span 인 <(-3, 1, 0, 0), (-5, 0, -2, 1)>이 해공간입니다. 작성자 : 나종진(2017****17)작성일 : 7월 21일 오후 4:12
[Final OK by SGLee] Q by 박지수, Finalized by 한수현, 해공간을 구하는 법, Span 인 <(-3, 1, 0, 0), (-5, 0, -2, 1)>이 해공간 입니다.
이 게시글에 대한 답변입니다. Final. 해공간, 박지수 학우님의 질문에 대한 답. Span 인 <(-3, 1, 0, 0), (-5, 0, -2, 1)>이 해공간 입니다.
풀이는 이런 식으로 하면 될 것 같습니다.
해공간을 표현하는데 사용하는 두 벡터는 해공간에 속해있는 무수히 많은 벡터 중 두 개를 끌어오면 되는 것이기 때문에 해공간의 표현은 다양하게 할 수 있습니다.
저 마지막 식에서 (x2, x4)가 (3, -2)일 때 해는 (1, 3, 4, -2)이고, (5, -3)일 때 해는 (0, 5, 6, -3)이므로 제가 구한 span(S)에는 예제 답에 나와있는 두 해가 포함 되어있으므로
제가 쓴 <(-3, 1, 0, 0), (-5, 0, -2, 1)>도 해공간의 표현 중 하나임을 알 수 있습니다.
박지수 학우님도 저와 같은 답이 나오셨던데, 그 답도 맞다고 보면 될 것 같습니다.
혹시 제 답변이 부족하거나 답변에 잘못된 부분이 있다면 알려주시면 감사하겠습니다.
질문 배경: 위의 풀이에서 얻은 답이 교재의 답과 모양이 달라서, 해공간을 구할 때 교재에서는 A.right_kernel()를 통해서 구했습니다. 그래서 sage 에서 right_kernel()에 대해서 찾아보니
이렇게 나오게 됩니다. 행렬의 kernel을 구하는 함수임을 알 수 있습니다.
그래서 kernel 이 무엇인지 인터넷을 찾아보고 3-1강 선형변화를 들어보았지만 이도 결국 해공간임을 알 수 있었습니다. 이를 찾던 중
이 사진을 찾을 수 있게 되었고, 영공간, 해공간을 두가지 관점으로 볼 수 있다고 보았습니다.
Q. 교재에 나와있는 A.right_kernel()로 구한 답인 [ 1 3 4 -2], [ 0 5 6 –3]와 손으로 계산하여 푼 답인 [-3,1,0,0], [-5,0,-2,1]이 어떤 차이가 있는지 궁금합니다.
교수님이 주신 답입니다^^ Answer.
(1) kernel 과 영공간은 같은 개념입니다. 단지 함수 A=T 의 kernel. 행렬 A의 영공간, 연립방정식 Ax=0 의 해공간 으로 모두 다르게 부릅니다. 그러나 위의 셋 다 같은 개념입니다.
(2) 컴퓨터로 구한 kernel of A = span of { [ 1 3 4 -2], [ 0 5 6 –3] } 와 손으로 계산하여 Ax = 0 의 해공간 (solution space) = A 의 영공간 = span of { [-3,1,0,0], [-5,0,-2,1] } 은 둘 다 정확히 같은 (2차원 ) 부분공간입니다.
즉, 찾은 두 개의 기저는 모양이 다르지만 (하나의 기저안의 각가의 벡터들은 다른 기저안의 벡터들의 일차결합으로 표현되므로, 모든 일차결합들이 집합인 각 span 은 같습니다.) 그 두 개의 기저는 같은 2차원 해공간=kernel 을 만드는 집합 입니다.
Final comment
이해되었습니다. 제가 여러개의 기저가 나올 수 있다는 사실을 간과하고 하나의 답만을 찾으려고 했습니다. kernel, 영공간과 해공간은 같은 개념임을 알게되었고 다양한 기저가 있음을 다시 한번 알게 되었습니다.감사합니다.
이재화 7월 21일 오후 4:30
1. 손으로 계산한 {(-3, 1, 0, 0), (-5, 0, -2, 1)}와 코드를 이용하여 계산한 {( 1, 3, 4, -2), ( 0, 5, 6, –3)} 은 모두 A의 영공간(Ax = 0의 해공간)을 표현하는 답이 됩니다.2. 일차독립이면서, 벡터공간 전체를 생성하는 벡터들의 집합을 기저(basis)라고 하는데, {(-3, 1, 0, 0), (-5, 0, -2, 1)}와 {( 1, 3, 4, -2), ( 0, 5, 6, –3)}모두 동일한 A의 영공간(Ax = 0의 해공간)의 기저가 됩니다.3. 같은 공간이어도 기저는 다양할 수 있습니다. 따라서 손으로 계산한 기저와 코드로 계산한 기저는 다를 수 있습니다.4. 그러나 기저를 이루는 벡터의 개수는 항상 같아서 이를 차원(dimension)이라고 합니다.위의 예에서 A의 영공간(Ax = 0의 해공간)의 차원은 2가 됩니다. 이를 A의 nullity라고 합니다.**************교수님이 주신 답입니다^^ Answer. (1) kernel 과 영공간은 같은 개념입니다. 단지 함수 A=T 의 kernel. 행렬 A의 영공간, 연립방정식 Ax=0 의 해공간 으로 모두 다르게 부릅니다. 그러나 위의 셋 다 같은 개념입니다. (2) 컴퓨터로 구한 kernel of A = span of { [ 1 3 4 -2], [ 0 5 6 –3] } 와 손으로 계산하여 Ax = 0 의 해공간 (solution space) = A 의 영공간 = span of { [-3,1,0,0], [-5,0,-2,1] } 은 둘 다 정확히 같은 (2차원) 부분공간입니다.즉, 찾은 두 개의 기저는 모양이 다르지만 그 두 개의 기저는 같은 2차원 해공간=kernel 을 만드는 집합입니다. 나종진 씨, 이제 이해되었지요? Final comment 달고 마무리 하시면 됩니다.
-----
Finalized by 정원철.[1주차 주요개념] <노름, 내적> 정리 및 Jupyter실습(feat. L1/L2 norm, 노름-내적 포함관계) -> 인공지능 공부와 병행하며 노름을 좀더 세분화하여 정리하였고, 노름과 내적간의 관계도 관찰하였습니다.
Finalized by 정원철.[1주차 주요개념] <노름, 내적> 정리 및 Jupyter실습(feat. L1/L2 norm, 노름-내적 포함관계)
작성자 : 정원철(2017****79)작성일 : 7월 31일 오전 1:12
조회수 : 8
정의. |
|
의 벡터
에 대하여
을 의 노름(norm, length, magnitude)이라 한다.
위의 정의에서 는 원점에서 점
에 이르는 거리로 정의됨을 의미한다. 따라서
의 두 벡터
,
에 대하여
는 두 점
와
사이의 거리(distance)로 정의한다. 즉,
기본적인 노름의 형태는 과 같으며 p 값에 따라 L1, L2 norm으로 정의됩니다.
위에서 정의된 노름은 p=2일 경우인 Euclidiean Norm, 혹은 L2 norm이라고 하며, p=1일 때는 Manhattan Norm, L1 norm이고 다음과 같습니다.
L1 norm: , L2 norm =
Ex)
x=[1,2,3,4,5],
L1 norm : ||x||1=(|1|+|2|+|3|+|4|+|5|)=15
L2 norm : ||x||2=√1+4+9+16+25=√55=7.4161
이 두가지의 근본적인 차이는 다음과 같습니다.
위의 그림에서 L2 norm의 경우에는, unique shortest path(연두색)를 가지는 반면에 L1 norm은 그 외의 길을 가집니다. L2 norm이 경로를 찾는데 있어서 더 효율적이라고 할 수 있을 것 같습니다(피타고라스..).
이를 감안하여 KNN classifier를 고려해보면, 다음과 같습니다.
L 1 norm L 2 norm
몇가지 색들의 영역을 Image classification을 통해 나타낸 그림인데, 정말 미세한 차이가 있지만 L2 norm이 좀더 명확하게 구분한거 같습니다.
또한 머신러닝에서는 모델의 overfitting을 피하기 위해 regularization을 사용하기도 하는데, 이때도 노름이 사용됩니다.
L_q norm regularization:
위 식에서 람다가 곱해져 있는 항이 norm이며, 이때 L1 norm일 경우, Lasso regression, L2 norm일 경우, Ridge regression으로 구분되는데 해당 내용은 추후 다시 정리해보도록 하겠습니다.
위의 정의에서 내적은 노름으로 정의될 수 있으며, 따라서 모든 내적공간은 노름공간이 된다는 것을 알 수 있습니다.
그렇다면, 반대의 경우도 성립할까요? 이를 위해 먼저, 다음을 살펴봅시다.
위 정리는 내적의 정의에 의해 자연스럽게 유도되는 성질이며, 아래와 같이 증명됩니다.
이를 통해 노름이 내적으로 정의될 수 있다면 위의 평행사변형 법칙을 만족시켜야함을 알 수 있으며,
의 두 원소 x=(1,0) and y=(0,1)를 생각해봅시다.
이때 x+y=(1,1) 와 x−y=(1,−1) 을 간단히 얻을 수 있고 네 원소들의 노름을 구해보면 다음과 같습니다.
위 계산 결과로부터 아래를 얻을 수 있습니다.
따라서, 노름공간은 평행사변형 법칙을 만족시키지 못하기 때문에 어떤 내적으로부터도 유도될 수 없음을 알 수 있습니다. (단, 노름공간이 실수체 위에서 정의된 경우에는 가능 (Von-Neumann Theorem 참조.)
참고 : [도전학기] 이상구 교수님 인공지능을위한기초수학
[도전학기] 김재광 교수님 인공지능의응용 [도전학기] 손영두 교수님 머신러닝과딥러닝
https://jjycjnmath.tistory.com/149?category=738774
이상구(LEE SANGGU)7월 31일 오후 3:38 Good
Finalized by 정원철.[1주차 주요개념] <선형 연립방정식> 정리 및 Jupyter실습 (feat. Geometry, 역행렬)
-> 벡터를 좌표 평면상에 그리는 것에 대한 막연한 두려움이 있었는데 기하적으로 행기준, 열기준으로 그려보면서 감을 잡았고 더나아가 결국 선형 연립방정식은 열의 합이라는 사실을 깨달았습니다. 또한 선형 연립방정식 형태로부터 별도의 테크닉 없이 역행렬까지 생각해보게 되었습니다.
Finalized by 정원철.[1주차 주요개념] <선형 연립방정식> 정리 및 Jupyter실습 (feat. Geometry, 역행렬)
작성자 : 정원철(2017****79)작성일 : 7월 31일 오전 1:21
조회수 : 6
정의. |
선형연립방정식(system of linear equations) |
(1) 일반적으로, 미지수 에 관한 유한개의 선형방정식의 모임
을 선형연립방정식(system of linear equations)이라고 한다. 만일 상수항 이 모두 0일 경우를 동차선형연립방정식(homogeneous system of linear equations, 동차선형방정식시스템)이라 한다.
(2) 선형연립방정식의 미지수 에 어떤 수
을 각각 대입하였을 때, 각 방정식이 모두 성립하면 (
)을 이 선형연립방정식의 해(solution)라고 한다. 예를 들어, 선형연립방정식
|
(1) |
의 에 각각
을 대입하면 두 방정식이 모두 성립하므로
은 선형연립방정식 (1)의 해이다. 일반적으로 선형연립방정식의 해가 존재하는 경우를 consistent(일관된)한 연립방정식이라 하고, 해가 존재하지 않는 연립방정식은 inconsistent 한 연립방정식이라 한다.
▪ (미지수가 2개인 선형연립방정식의) 해집합의 다양한 모습
(1) (2)
(3)
일반적으로, 주어진 선형연립방정식은 다음 중 하나만(one and only)을 만족한다.
(1) 유일한 해를 갖는다.
(2) 무수히 많은 해를 갖는다.
(3) 해를 갖지 않는다. (inconsistent 한 선형연립방정식)
선형연립방정식의 그래프를 항상 위에 보이는 대로 그려왔었는데 벡터의 합으로도 그래프를 그려보고 싶어 Geometry에 대해서 공부해보았고 선형연립방정식을 Row와 column 각각의 기준으로 그리는 법을 배웠습니다. 예를 들어 위의 (1) 방정식의 경우, row를 기준으로 보자면 2개의 방정식으로 나뉘어져 일반적으로 알고 있는 대로 위와 같은 그래프를 그릴 수 있습니다. 반면 column 기준으로 생각해보면,
이 됨을 알 수 있고 아래 그래프에서 값이 2,1 임을 확인할 수 있습니다.
Row와 column 기준의 그래프는 아래와 같습니다.
<row picture> <column picture>
*[1,2] 구간 빨간색 수정.
또한, 역행렬을 공식이나 Gauss elimination 없이 선형연립방정식 자체의 성질에 기인하여 구해보았습니다.
예를 들어, 다음과 같은 Ax = b가 있습니다.
이때, 좌변을 전개해보면 꼴이 되며, 이를 다시 x 벡터에 대해서 정리를 합니다.
그러면 이 되고, 우변을 다시 b에 대해서 정리를 하면, 결과적으로
가 됩니다.
결국 간단한 선형연립방정식의 성질로도 임을 구할 수 있습니다.
참고
[도전학기] 이상구 교수님 인공지능을위한기초수학
Gilbert strang, MIT 18.06
Finalized by 정원철.[1주차 주요개념] <Gauss (J) 소거법과 (R)REF (1)> 정리 및 문제풀이.(feat. Special Sol & nullspace)
작성자 : 정원철(2017****79)작성일 : 7월 31일 오전 1:26
조회수 : 9
예전에 전공 수업을 들을 때, Gauss (-Jordan) 소거법과 R(R)EF는 선형연립방정식의 해 또는 역행렬을 구하는 데에 있어 굉장히 중요한 테크닉이라고 배웠고 인공지능을 공부하는 과정에서도 빈번히 등장하는 개념이라 혼자 한번 손으로 적으면서까지 연습을 진행해보았습니다. 그러던 차에 훌륭한 예제 덕분에 해를 구하는 것 이외에도 pivot, linear independence, nullspace, columnspace, free variable, (full) rank 등등 다양한 개념들이 연관 되어있다는 것을 확인하였고, 관련된 insight를 공유하고 싶습니다.
예를 들어, 행렬을 가지고 AX=0의 해가 되는 X 벡터를 구해보겠습니다.
먼저, 오리지널 행렬을 한번 살펴보자면 2번째 row는 1번째 row의 2배이며, 3번째 row는 위 두 row의 합으로 이루어져 있습니다. 따라서 이 행렬은 linear dependent한 형태라는 사실을 알 수 있습니다.
아래와 같이 Gauss elimination을 이용하여 REF를 구하고, Gauss Jordan elimination으로 RREF를 구하면 을 구할 수 있습니다.
참고로 이때, 1번째와 3번째 칼럼에 pivot이 있으니까 이 행렬의 rank(=pivot의 개수)는 2가 되고, 전체 4개의 칼럼 중 rank가 2이니까 free variable(=n-rank)은 2가 됩니다. (2번째 4번째 칼럼)
RREF에 x에 특정한 값을 대입하여 Ax = 0의 해를 구하면, 를 구할 수 있으며, 이들을 “special solution”이라고 하며, 이들 각각의 모든 combination을 고려하여 각각 벡터 앞에 실수 scalar를 곱해주면 “null space”를 얻을 수 있습니다. (이때, 만약에 nonhomogeneous한 케이스 (Ax=b)의 해를 구한다면 “column space”를 얻게 됩니다. Null space와 column space의 개념은 선형대수 전반적으로 아주 중요한 부분 같아서 언급했습니다.)
또한 이를 좀더 추상화하여 다음과 같이 표현할 수 있습니다. 먼저 2번째 칼럼과 3번째 칼럼의 순서를 교차해주고 pivot 부분을 Identical 행렬로, free variable 부분을 Free 행렬로 구분한다면, x의 Special solution과 null space는 아래와 같이 구할 수 있습니다.
참고
[도전학기] 이상구 교수님 인공지능을위한기초수학
Gilbert strang, MIT 18.06
정권채(2008****19)8월 1일 오후 10:16 RREF가 뭔가 중요한 부분인 것 같은데 강의로 이해가 안 되서 교수님 유튜브로 겨우 무엇인지 이해만 하고 넘어갔었는데, 감사합니다.
-----------------------------------------------------------------------
Finalized by 정원철.[1주차 주요개념] <Gauss (J) 소거법과 (R)REF (2)> 알고리즘
작성자 : 정원철(2017****79)작성일 : 7월 31일 오전 1:28
조회수 : 8
Gauss elimination을 활용해서 REF를 구하는 전반적인 과정의 컨셉이 정렬 알고리즘과 비슷한 것 같아 실습 문제를 아래와 같이 풀어보았습니다.
(*[코딩더매트릭스]님의 코드를 가져왔습니다.). 아래와 같이 간단한 코드는 직접 짜보면서 연습해 보시면 도움이 될 것 같아 공유드립니다.
참고 https://excelsior-cjh.tistory.com/139
inalized by 정원철.[1주차 주요개념] <일차독립, 기저, 차원> geometry를 통한 정리(feat. span, columnspace, nullspace)
작성자 : 정원철(2017****79)작성일 : 7월 31일 오전 1:41
조회수 : 10
정의. |
일차독립(linearly independent) |
(1) 의 부분집합
에 대하여, 벡터
가
의 꼴로 표시되면, 를 벡터
의 일차결합(linear combination)이라고 한다.
(2) 에 대하여
이면, 벡터 (또는 집합
)는 일차독립(linearly independent)이라고 하고, 벡터
(또는 집합
)가 일차독립이 아니면 일차종속(linearly dependent)이라고 한다.
▪ 집합 가 일차종속이면
을 만족하는 모두는 영이 아닌 스칼라
가 존재한다.
정리. |
일차종속 |
집합 에 대하여, 다음이 성립한다.
(1) 집합 가 일차종속일 필요충분조건은
에 속하는 한 벡터가 나머지 벡터들의 일차결합으로 표시되는 것이다.
(2) 집합 가 영벡터를 포함하면
는 일차종속이다.
(3) 집합 의 부분집합
이 일차종속이면
도 일차종속이고,
가 일차독립이면
도 일차독립이다.
▪는
들을 열벡터(column vector)로 가지는 행렬,
라 하자. 그렇다면 벡터들이 일차독립임을 보이기 위해서는 동차연립방정식
이 유일한 해
을 가져야 한다. 특히
일 경우
이면 유일해를 갖는다.
저는 일차독립과 일차종속의 정의가 직관적으로 잘 이해가 가지 않아 기하적으로 접근해보았
저는 일차독립과 일차종속의 정의가 직관적으로 잘 이해가 가지 않아 기하적으로 접근해보았습니다. 먼저, 정의에서 가장 중요한 포인트는 ‘집합 가 일차종속이면
을 만족하는 모두는 영이 아닌 스칼라
가 존재한다.’ 인데 예를 들어, 아래 그림을 봅시다. 그래프가 0이 되기 위해서 c1과 c2가 무슨 값을 가져야 되는지를 판단하면 되는데 첫번째 그래프는 V2=2*V1라는 선형관계가 있기 때문에 c1,c2 = 1,-2가 될 수 있고, 두번째에서는 V1 =0 이 성립한다고 해도 V2가 영벡터이기 때문에 어떤 스칼라값이 들어와도 항상 0이 성립합니다. 즉, 영벡터가 하나라도 있으면 선형방정식의 independency를 걍 죽여버리는 셈입니다. 세번째는 V1과 V2가 별다른 선형관계를 가지고 있지 않으므로 0으로 가기 위해서는 c1,c2=0일 수 밖에 없습니다. 정리하자면 앞선 두개는 일차종속, 마지막은 일차독립입니다.
또한 ‘ (1) 집합 S가 일차종속일 필요충분조건은 S에 속하는 한 벡터가 나머지 벡터들의 일차결합으로 표시되는 것이다.’ 이 문장은 기하적으로 생각해보면 ‘세 벡터가 원점을 지나는 한 평면 위에 있다’가 됩니다. 반대로 일차독립이면 세 벡터가 원점을 지나는 한 평면 위에 있지 않으면 되겠죠. 그림을 살펴보시면 쉽게 이해할 수 있습니다.
이전에 RREF를 공부하면서 어떠한 행렬의 row들이 관계가 있으면 당연히 일차독립이 될 수 없다고 정리했었습니다. 거기서 확장해보자면, 어떠한 행렬을 Gauss (or J) elimination으로 (R)REF로 만든 후 모든 row에 pivot값이 있다면 선형독립(ex. , pivot값이 없다면(ex.
, 선형종속으로 정리하면 될 것 같습니다.
여기서 조금 더 생각해보면, rank가 pivot의 개수니까 선형독립일 경우에는 rank =n이 되고, 선형종속일 경우에는 rank < n이 됨을 알 수 있습니다.
이러한 논리는 기저를 이해하는 데에도 수월합니다. 먼저 정의를 한번 보시죠,
정의. |
기저(basis) |
의 부분집합
가 아래 두 조건을 만족하면
를
의 기저(basis)라 한다.
(1) 가 일차독립
(2)
정리. |
일차독립, 일차종속, 각 기저에 속하는 벡터의 개수 |
(1) 집합 이
의 기저일 때,
의
개의 벡터들의 집합
은 항상 일차종속이다. 그러므로
가 일차독립이면 언제나
이다.
(2) 집합 과
이
의 기저이면
이다.
▪ 의 기저는 무수히 많다. 그러나 각 기저에 속하는 벡터의 개수는 항상 같다.
정의. |
차원(dimension) |
집합 가
의 한 기저일 때,
에 속하는 벡터의 개수를
의 차원(dimension)이라 하며
로 나타낸다.
정리. |
|
을
의 부분공간
의 기저라 하면,
의 모든 벡터
는 기저 벡터들의 유일한 일차결합으로 표현된다.
▪ 의
개의 일차독립인 벡터들은 임의의 벡터
를 일차결합으로 유일하게 표현하므로 기저이다!
공간을 예를 들어 생각해보면, {
}는
를 span하면서도 일차독립을 이루고 있기 때문에 기저라고 볼 수 있는 반면, {
} 은 row 기준으로 첫번째와 두번째가 동일함으로 기저가 될 수 없습니다. 또한 ‘집합
과
이
의 기저이면 n=m이다. ▪
의 기저는 무수히 많다. 그러나 각 기저에 속하는 벡터의 개수는 항상 같다.’ 라는 정의에서는
공간에서 기저가 되려면 벡터는 n개가 되어야 한다고 강조하고 있는데 이때 n을 차원이라고 합니다.
기저에 대해서 알아볼 때 까다로웠던 것은 행렬 전체, columnspace, nullspace 각각에 대한 기저를 구하는 문제였습니다. 예를 들어, 행렬을 놓고 보았을 때, 4개의 벡터가 R^4공간에 대하여 span하고 있지만, 3번째(=1번째+2번째), 4번째(=1번째) 칼럼은 모두 일차종속이기 때문에 columnspace (C(A))의 기저는 pivot 항인 1번째,2번째 칼럼이고 차원은 2입니다. 여기서 다음과 같은 관계를 도출할 수 있습니다. <rank(A) = A의 pivot 개수 = C(A)의 차원>. 또한 앞서 언급한 3번째(=1번째+2번째), 4번째(=1번째) 칼럼의 성질을 이용하여 nullspace(N(A))=
임을 알 수 있습니다. 따라서 nullspace의 차원은 2가 되며, 다음과 같은 관계가 도출됩니다.
<N(A)의 차원 = free variables의 개수 = n -r>
참고
[도전학기] 이상구 교수님, 인공지능을위한기초수학
Gilbert strang, MIT 18.06
이상구(LEE SANGGU)7월 31일 오후 3:37 Good
-----------------------------------------------------------------------
Finalized by 정원철.[1주차 주요개념] <일차독립, 기저, 차원> 문제풀이 및 jupyter로 검증
작성자 : 정원철(2017****79)작성일 : 7월 31일 오전 1:47
조회수 : 12
일차독립, 기저, 차원이 다른 개념에 비해 다소 추상적이게 느껴지고 이들간의 관계에 대해서 좀더 명확히 정리하고 싶어서 다음 문제를 풀어보았습니다. 한번 같이 풀어보시면 조금이나마 도움이 될 것 같아 공유드립니다.
Q. Find the dimension of the vector space spanned by the vectors
(1, 1, -2, 0, -1), (1, 2, 0, -4, 1), (0, 1, 3, -3, 2), (2, 3, 0, -2, 0)
And find a basis for that space.
먼저 위의 그림과 같이 row를 기준으로 풀어봤습니다. 주어진 벡터들을 span하여 행렬을 하나 만들었고 일차독립을 확인하기 위하여 Gauss elimination을 활용하여 REF를 구했습니다. 그 결과 1, 2, 3번째 row의 pivot이 주어졌고, 따라서 이 들은 일차독립 조건과 span 조건을 만족하기 때문에 차원이 3인 row 기준 기저가 됩니다.
다음으로는 아래와 같이 column을 기준으로 풀어봤습니다.
Column 기준으로 풀 때는 좀전에 span하여 만든 행렬을 transpose한 다음 row 기준과 같은 방식으로 진행하였습니다. 따라서 1, 2, 3번째 column이 일차독립이라는 정보를 얻었고 기저를 구할 수 있었습니다. 다만, 이때 주의해야했던 점은 REF를 만들면서 column space가 변해버린 것 같아서 답은 기존에 있던 column을 적었습니다.
다음으로는 파이썬을 이용해 정답을 검증해보았습니다.
이상구(LEE SANGGU)7월 31일 오후 3:36Good
Finalized by 정원철. [2주차] 고유값 분해를 이용한 피보나치수 일반항 유도
fianlized by 정원철. [2주차] SVD를 활용한 이상구 교수님 사진 압축. 댓글 by 나종진, 이상구교수님, 장환승, 김호연, 김정환, 김다은, 박진형
-> 사실 1주차 글들은 정말 많은 시간을 쏟았음에도 별다른 관심을 끌지 못했었는데, 고유값 분해, 특이값 분해와 같이 난해한 개념을 활용해서 피보나치수의 일반항 도출, 이상구 교수님의 사진 압축하기 등 모두에게 익숙하고 흥미로운 주제들로 풀어내니까 좋은 반응이 보였던 것 같습니다. 많은 분들의 공감을 이끌어내서 보람찼습니다.
[Final OK by SGLee] Finalized by 정원철. Q.임성규 A. 이상구교수님, 김진웅 [2주차 이차 형식(quadratic form) 실습을 통한 복습 및 질의]
-> 교수님께서 댓글에 꼭 참고하라고 한 페이지의 예제를 풀어보았는데 굉장히 흥미로워서 꼭 제가 나서서 Finalized 하고 싶었던 글입니다. 또한, 오류를 해결하는 과정에서 교수님과의 소통도 좋았습니다.
[Final OK by SGLee] . Finalize & 추가적 이야기 by 김범준. [5주차] 포아송분포 베팅 (토트넘 vs 에버튼)by 정원철. 댓글 by. 이상구 교수님, 안성진 학우님, 최희준 학우님, 천가영 학우님, 나종진 학우님, 임성규 학우님, 박은아 학우님, 정권채 학우님, 박정호 학우님, 장환승 학우님
[7주차] PCA를 활용한 라면맛 평가
-> 어려운 개념을 실제 사례를 통해서 쉽게 이해할 수 있도록 하여 많은 학우분들의 공감을 이끌어냈고, 포아송분포글 같은 경우에 김범준 학우님의 추가적인 사례 추가를 통해 하나의 양질의 컨텐츠를 만들 수 있었습니다.
[5주차] 이산확률분포 관계 정리
-> 이산확률분포 들간의 관계를 이해함으로써 평소 암기에 의존하던 통계 공부에서 탈피할 수 있었습니다.
[Final OK by SGLee] Final by 장환승, 재밌는 확률 문제 소개 (2) Answer by 김태호, 정원철, 나종진, 박지수, 고경원
-> 문제를 푸는 과정에서 베이즈 공식의 의미를 파악함으로써 답을 구하려고 많이 고민했었습니다.
Final OK by SGLee Finalized by 정원철. [7주차] 신경망 요약 by 천가영.
Finalized by 정원철. 7주차 오차역전파법 정리 by 김진웅 + 아주 직관적인 예시 추가
-> 신경망과 오차역전파법을 저만의 언어로 잘풀어내려고 노력하며 답을 하였습니다.
Ch. 2: Participation Part (참여부분, 정량) 자기 평가와 본인의 Project (Term paper) 제안서 등에 대해 아래를 채우시오. (20점)
Fill in the below for your self-assessment and your project/term paper. (20 points/100)
A. (Quantity 10pts) Briefly describe your contributions through Q&A for yourself and fellow students in our "Basic Math for AI" classes!
(1) Quantity: Check your participation numbers in Q&A <Refer your name in Q&A directly>: Each week (Saturday to Friday)
▪ Week 1: 9 Week 2: 5 Week 3: 4 Week 4: 4
▪ Week 5: 4 Week 6: 4 Week 7: 4
(Total = entries) 34
Total number of sessions (Q: 9 , A: 25 )
■ Number of online attendances: ( 42 ) / 42 (1-7week)
Online WebEx OH attendance: ( 5 ) / 5 (1-7week)
Absences: 0
1. (20점) 본인이 그간 Q&A, 동료학생, “본"강좌 등에 기여한 내용을 간단히 서술하세요!
(1) QnA 참여 회수 <QnA에서 직접 확인하세요> : 각 주별 (토요일에서 금요일)
(1) 1주차 : 총 8회, 2주차: 총 4회, 3주차: 총 4회, 4주차: 총 4회,
5주차: 총 5회, 6주차: 총 4회, 7주차: 총 5회
총 36 회
( 해당 횟수는 수업 관련 심도있는 질의라고 판단한 것만 count 하였고, 총 포함하면 53회 가량 됩니다.)
(2) 온라인 출석 회수 : 42회 / 42회
(3) Webex 출석 회수 : 2회
( 전에 Webex에 출석하여 질문을 남겼었는데 해당 게시글은 찾기 어렵습니다.)
[Final OK by SGLee] 임성기 채희준 나종진 [오늘 OH, 목요일 오후 5시-6시20분] OH 에서 논의된 내용 아래에 (약속대로) 정원철 군과 안성진 군이 먼저 답글로 추가 하세요^^ 다른 학생은 이어서 한 줄 씩 주요 내용 보태시면 됩니다.
정원철(2017****79)8월 20일 오후 9:11
오늘 논의된 내용 중 필수적으로 전달드려야할 3가지가 있습니다.1) 온라인 기말시험은 중간시험과 유사한 방식으로 진행되며, 기말시험을 대비하여, 평소 학습이 부족하다고 판단되시는 분들은 본인이 직접 하나부터 열까지 정리를 하기에는 시간적으로 벅찰 수 있으니,기존에 다른 학우분들께서 잘 정리해놓으신 글에 comment를 달거나 질문을 하고, 또는 본인의 내용을 추가하여 Finalize 혹은 reFinalize 하는 방법으로makeup 하시면 됩니다. 3) 프로젝트를 참여하지 못하였으나, 가산점을 받고 싶으신 분들은 5분 ~ 10분 정도의 동영상으로 본인의 Final PBL 보고서를 발표하여 공유해주시면 됩니다.* Midterm PBL 에서 아쉬웠던 분은 이번 Final PBL 만 잘 하시면 Makeup 할 수 있으니 ... 일단 120점 온라인 시험 문제 보시고 그것 만점 받으시고, 그에 근거하여 교수님이 미리 보여주신 우리 Midterm PBL 샘플 보시고 Final PBL 을 본인의 언어로 채점하기 좋게 잘 정리하셔서 due day 전에 제출하시면 됩니다^^ 그리고 본의의 PBL 은 본인의 평생 포트폴리오가 될 것이라고 하셨습니다. 남은 1주일 잘 마무리 하시기를 기대합니다.
(2) 다음 밑줄 친 곳에 들어갈 내용을 고르시오.
나는 ‘아래 박스 안 키워드들’의 개념을 이해하고 설명할 수 있으며 (간단한 것은 손으로, 복잡한 것은 Sage/ python/ R를 이용하여) 계산하여 그 의미를 설명할 수 있다.
나는 벡터, 내적, 벡터의 노름, 코시-슈바르치 부등식, 정사영(projection), 선형연립방정식(system of linear equations), 첨가행렬(augmented matrix), 기본행 연산(ERO), 행 사다리꼴(REF), Row Reduced Echelon Form, Gauss 소거법과 Gauss-Jordan 소거법, 행렬과 행렬식, vector sum, scalar multiplication, 행렬의 곱(product), 영행렬(zero matrix), 역행렬, 대각행렬, 스칼라행렬, 대칭행렬, 치환(permutation), 수반행렬(adjugate, adjunct), 일차독립, 일차종속, Subspace, 기저, 차원, nullity, column space and row space, 계수(rank), Rank-Nullity 정리, 최소재곱해(least square solution), Orthonormal basis, Gram-Schmidt 정규직교화 과정, QR 분해, 선형변환(Linear Transformation), 표준행렬, 핵(kernel)과 치역(range), 동형사상(isomorphism), 고윳값, 고유벡터, 대각화(Diagonalization), 닮음 행렬(similar matrix), 직교대각화(orthogonally diagonalizing), 고윳값분해(eigen-decomposition), SVD(특이값 분해), 일반화된 역행렬(Pseudo-inverse, Moore-Penrose Generalized Inverse), 이차형식(quadratic form), 주축정리(Principal axis theorem), 함수, 극한(limit), 도함수(derivative)와 미분(differentiation), 뉴턴 방법(Newton’s Method with gradient), 적분(Integral), 리만 합(Riemann sum), 외적(Cross Product), 벡터 함수, 편도함수(Partial Derivative)와 그래디언트(gradient), Jacobian, 연쇄법칙(Chain Rule), 방향도함수(directional derivative), Taylor 정리, 함수의 극대(Local Maximum) and 극소(Local Minimum), Fermat’s theorem on critical points, 임계점(critical point), 안정점(saddle point), Gradient Descent Algorithm(경사-기울기 하강법), 중적분(double integral, multiple integral), Fubini의 정리, 표본평균(sample mean), 표본평균(sample mean), 중위수(median), 사분위수(quantile), 표본분산(sample variance), 표본표준편차(sample standard deviation), 백분위수(percentile), Interquartile range (IQR), 수열(permutation), 조합(combination), 이항계수(binomial coefficient), 이항정리(binomial theorem), 중복집합(multiset), 확률(probability), 대수의 법칙(Law of large number), 조건부 확률(conditional probability), 사전확률(prior probability), 사후확률(posteriori probability), 베이즈 정리 (Bayes’ theorem), 확률변수 (random variable), 기댓값(expected value), 분산(variance), 표준편차(standard deviation), 확률분포(probability distribution), 확률질량함수(probability mass function), 확률밀도함수(probability density function), 이산 확률 분포(discrete probability distribution), 베르누이 분포(Bernoulli distribution), 이항분포(Binomial distribution), 정규분포(Normal distribution), 표준정규분포(Standard normal distribution), 지수분포(Exponential distribution), 중심극한정리 (Central Limit Theorem), 표준 코시 분포(standard Cauchy distribution), 공분산(Covariance), 상관계수(Correlation), 공분산 행렬(Covariance Matrix), 통계적 독립(Statistically Independent), 주성분 분석(Principal Component Analysis)의 개념을 이해하고 설명할 수 있으며 간단한 것은 손으로, 복잡한 것은 sage 또는 python 을 이용하여 계산하여 그 의미를 설명할 수 있다.
*대표적인 사례 2가지*
*아래 게시글을 참조해주세요. 혹은 한글 파일 내에서 검색해주세요.*
Finalized by 정원철.[1주차 주요개념] <Gauss (J) 소거법과 (R)REF (1)> 정리 및 문제풀이.(feat. Special Sol & nullspace) -> 행렬 하나의 예제를 통해 선형독립과 선형종속에 대해서 판단 후, 직접 수기 증명을 통해 가우스 요르단 소거법을 통해 RREF를 구하였습니다. 그다음 RREF 행렬을 관찰하며 rank와 nullity를 구하였고 special solution을 찾는 과정을 수기 풀이로 보여주며 영공간을 구하고(해당 예제는 Ax=0인 상황) Ax=b인 상황에서는 열공간을 만들 수 있다고 언급하였습니다.
Finalized by 정원철.[1주차 주요개념] <일차독립, 기저, 차원> 문제풀이 및 jupyter로 검증
-> 위에서와 마찬가지로 수기로 하나의 행렬을 행기준 열기준 각각 가우스 요르단 소거법을 활용하여 RREF 꼴을 만들었고, 이를 통해 기저와 차원을 구했습니다. 이렇게 수기로 푼 풀이를 검증해보기 위해 파이썬으로 가우스 소거법과 랭크, 기저, 차원을 구하는 알고리즘을 작성하여 마찬가지로 행기준 열기준 각각에 대해서 실습해 보았습니다.
(3) 개인/동료와 같이 “본” 강좌를 학습하면서 배우거나 느낀 점은?
I am very glad that I had the opportunity to once again get into this wonderful environment of the PBL class. I really wanted to deepen my mathematical knowledge in the field of Artificial Intelligence, and this summer semester, thanks to this subject (basic mathematics for artificial intelligence), I have this opportunity. As I said earlier, I really like the PBL technique, because thanks to it, each student can actively participate in the educational process.
I also want to note that this PBL system, pushes you to learn and improve your knowledge literally every day. So, every day I devoted at least 3-4 hours to study this subject and related material, which allowed me to significantly improve my mathematical knowledge and practical skills in programming in Sage, Python and R.
: 평소 인공지능을 공부하면서 수학 베이스를 좀더 탄탄히 다져야할 필요성을 절감하고 있던 차에 교수님의 잘짜여진 커리큘럼 내에서 제가 부족하거나 추가로 공부하고 싶던 개념들에 대해 능동적으로 공부할 수 있어서 굉장히 보람찹니다. 특히나 개념에 대해서 이해하는 것을 넘어서 정리, 질문 답변, 실습을 하는 교수님 수업 방식 덕분에 선형대수학과 미적분학에 대한 로드맵이 생겨 향후 인공지능을 더 깊게 공부하는 데에 큰 도움이 될 것 같습니다. 뿐만 아니라 다른 학우분들의 Q&A 글을 보면서 제가 평소에 잘 이해하지 못했던 부분에 대해서 같은 고민을 하면서 해결해나가는 과정에서 공감도 많이 되었고 큰 도움을 받고 있어서 저도 그에 못지 않게 배풀고 싶어서 더 열심히 하게 됩니다.
(4) What you contributed through this course (Q & A and/or In-class):
I tried to actively participate every week in the QnA. Most of my QnA activity consists of answering questions, coding, Finalizing and summarizing lecture materials. In almost every post I have tried to attach examples of solving problems by hand and using Sage or Python(or both) code, as I believe that a visual step-by-step process of solving problems in practice can greatly help me and other students in understanding the topic.
(5) (5 pt) What is your most important contribution or founding that you shared with others in QnA.(Quality)
To my mind, my most important contribution that I shared with others was:
[Final OK by SGLee] [HW] 1주차 강의 내용 요약 및 정리 + Sage과 Python 실습(비교), 내용 요약 및 정리 by 박진형, 코딩실습 및 Finalized by 유가이 올렉산드르
Here Mr. 박진형 summarized all the material for the first week, and I added Python and Sage code for deeper understanding the material. Also, mygoalwastocomparethecapabilitiesofPythonandSageinsolvingmathematicalproblems.Fromthiscodingpractice,wecanconcludethatitismuchmoreconvenientandfastertoapplySageinamathematicalenvironment.
Additional remark by 유가이 올렉산드르: I have always tried to supplement each of my posts that I posted in QnA with a real example of solving a task, both manually and using code(Python, Sage, R).
(6) Number of Final OK by SG Lee Problems (and/or Completed Discussion/Question) in Q&A that your name is included: 13
B. (Quantity 10pts) Quality of Your Participation:
(1) Write what you especially remember while you are doing A-1, 2, 3.
I am very pleased that most of the students in this class are very actively involved in the educational process. Everyone is trying to share their knowledge in QnA, ask questions on an incomprehensible topic, or help another student with a detailed answer. I also try to be a part of this process and to participate as much as possible in the QnA.
I am very impressed with how many strong math/programming students there were in this class. It was very interesting for me to participate in QnA with them.
(2) What did you learn or feel while learning Math for AI (Action Learning/PBL) with your classmates?
I have greatly improved my mathematics knowledge and also deepened my knowledge of programming.
ThankstotheactiveworkoftheProfessor,TAandstudents,IsignificantlydeepenedmyknowledgeofSVD,Newton'sMethod,GradientDescentMethod,Bayes’theorem,CovarianceMatrix,PCAetc.,andlearnedalotaboutthewaytoapplythemusingPython,SageandR.
Ch 2장. Participation (참여부분, 정량) 자기평가와 본인의 Project (Term paper) 제안서 등에 대해 아래를 채우시오. (20점)
1. 본인이 그간 Q&A, 동료학생, “본"강좌 등에 기여한 내용을 간단히 서술하세요!
(1) Q&A 참여횟수 <Q&A에서 직접 확인하세요> :
총 65회 Final OK 30회
(4) 1주차 : 총 14회
(5) 2주차 : 총 11회
(6) 3주차 : 총 13회
(7) 4주차 : 총 9회
(8) 5주차 : 총 4회
(9) 6주차 : 총 8회
(10) 7주차 : 총 6회
온라인 출석 회수 : 36회 / 36회
WebEx OH 참석 회수: 1회
(2) 다음 밑줄 친 곳에 들어갈 내용을 고르시오.
나는 <1> 벡터, 노름, 내적, 행렬, 행렬곱, 대각선행렬, 단위행렬, 전치행렬, 대칭행렬, 하삼각행렬, 상삼각행렬, 역행렬, 행렬식, 여인자, 수반행렬, 선행주소행렬식 <2> 선형연립방정식, 계수행렬, 첨가행렬, 기본행연산, 기본행렬, 치환행렬, REF, RREF, Gauss 소거법, Gauss-Jordan 소거법 <3> 선형변환, 표준행렬, 핵, 치역, 단사, 전사 <4> 벡터공간, 부분공간, 일차결합, 일차독립, 일차종속, span, 기저, 차원, 행공간, 열공간, 영공간, rank, nullity <5> 정사영, 직교성분, 초평면, 정규직교벡터, 정규직교기저, Gram-Schmidt 정규직교화법, full column rank, LU분해, QR분해, 최소제곱해 <6> 고유값, 고유벡터, 고유공간, 직교행렬, 대각화, 직교대각화, 고유값분해, 특이값, 특이벡터, SVD, 유사역행렬 <7> 이차형식, 양의정부호, 음의정부호, 부정부호, 주축정리 <8> 접선, 뉴턴방법, 다변수함수, 매개변수 방정식, 편도함수, 방향도함수, 그래디언트, 헤시안, 임계점, 안장점, 극대극소판정법, 경사하강법, Jacobian, <9> 표본평균, 표본푼산, 표본표준편차, 중위수, 4분위수, 백분위수, IQR, 순열, 조합, 중복집합, 중복순열, 중복조합, 표본공간, 사건, 확률, 조건부확률, 베이즈정리 <10> 확률변수, 확률분포, 기대값, 분산, 표준편차, 표준화 확률변수, 베르누이분포, 이항분포, 포아송분포, 균등분포, 정규분포, 표준정규분포, 지수분포, 중심극한정리, 결합확률분포, 주변확률분포, 공분산, 상관계수, 공분산행렬 <11> 주성분, 적재계수, 주축, 데이터행렬, 센터링된행렬, 데이터행렬의 공분산행렬, 주성분화 데이터행렬, 주성분 score, 차원축소, PCA, 신경망, 활성화함수, 오차역전파법의 개념을 이해하고 설명할 수 있으며 (간단한 것은 손으로, 복잡한 것은 컴퓨터를 이용하여) 역행렬 구하기, 행렬식 구하기, 선형연립방정식 해 구하기, 정사영 구하기, Gram-Schmidt 정규직교화법, QR분해, 선형연립방정식 최소제곱해 구하기, 고유값 구하기, 고유벡터 구하기, 대각화, 직교대각화, SVD, 주축정리, 뉴턴방법, 극대극소판정법, 경사하강법, 베이즈정리, 정규분포 확률 구하기, 공분산행렬 구하기, PCA, 오차역전파법을 계산하여 그 의미를 설명할 수 있다.
(3) 개인/동료와 같이 “본” 강좌를 학습하면서 배우거나 느낀 점은?
인공지능에 필요한 선형대수학과 미적분학을 알차게 배웠습니다. 앞으로 인공지능을 배우면서 이번 강좌에서 배운 지식이 요긴하게 쓰일 것에 보람찹니다.
인공지능에 필요한 확률통계학과 인공지능 기술(PCA, BP)을 알차게 배웠습니다. 이를 토대로 인공지능 기술의 이해 및 개발에 도움 될 것에 보람찹니다.
우선 Sage를 활용하여 수학을 배운다는 느낌이 참 신선하고 미래지향적인 교육이라 느꼈습니다. 교수님이 보시는 글이라 아첨을 떠는 것이 아니라 진정으로 수학교육의 미래는 코딩에 있다고 생각합니다. 수학과외도 많이 해보고 학창시절에도 친구들한테 많이 알려주고 가르치고 봉사교육 다니고 그러는데 항상 안타까운 것이 어릴 때 수학을 놔버려 끝까지 쳐다보지도 않는 경우가 많다는 것입니다. 수학이라는 학문이 다른 것과 다르게 기초가 부족하면 쌓아 올리기 어렵다보니 이른바 ‘수포자’가 많이 생긴다고 생각합니다. 항상 들어보면 포기하던 순간들이 미지수가 처음 등장했을 때, 함수가 처음 등장했을 때, 도형(그래프)가 등장했을 때 등등인데 코딩이라는 직관적이고 active한 방법을 통해 직접 스스로 채워가며 그 변화 과정을 일순간에 보여주다보면 그냥 막연하게 수식으로 풀어내는 것에 비해 훨씬 이해도가 높고 습득하기 쉽다고 생각합니다. 코딩이라는 것을 단순하게 계산기로 사용하는 교육은 바람직하지 않다고 생각하지만 교수님의 강좌는 우선적으로 개념을 이해시키고 내가 이해를 했으니 코딩을 바탕으로 작성해보고 어려운 계산을 코딩에 맡기고 이해하기 어려운 개념은 그래프나 식으로 구현하여 시각적으로 보여주니 정말 좋았습니다. 앞으로 남은 강좌가 절반 있지만 기대됩니다. 기다리는 방송을 챙겨보는 심정으로 강좌 성실하게 듣고 있습니다. 학우들과 활발하게 참여할 수 있는 게시판 운영도 너무 좋은 것 같습니다, 궁금하게 생기면 즉시 올리고, 매일매일 답변 받을 수 있는 게시판이 전세계 몇군데나 될까요. 수학적 궁금증이 생기면 최고의 교수님과 열정적이고 멋진 학우들에게 답변 받는다는게 정말 큰 혜택이라고 생각합니다. 절반 남았지만 지금까지 해온 것처럼 최선을 다해서 참가하겠습니다. ML을 공부하면서, 코드를 치면서 black – code라는 느낌이 강했는데 수학을 배우고 그 근간을 공부해나가니 어느정도 깨우치고 있는 느낌이라 보람차고 정말 뿌듯합니다.
4주에 더해 3주가 지나니, 생각보다 짧았던 것 같습니다. 처음에는 길게 느껴졌는데 막상 지나고 나 돌이켜 생각해보면, 아쉬운 점도, 부족한 점도 더러 있었던 것 같습니다. 절반의 수업이 지난 이후, 통계과 확률 그리고 ML의 기초에 대해 배웠는데 개인적으로는 앞의 4주차 내용보다는 쉬워서 훨씬 들을만 했습니다. 교수님의 강의도 재밌지만 역시 이 수업의 꽃은 게시판에서 학우들끼리 토론을 하는 것이 아닌가 라는 생각을 합니다. 재밌는 프로젝트를 소개 받아 유익한 칼럼을 읽듯 읽고 댓글로 소통하고 모르는 것이 있으면 물어보고 active 하게 바로 반응이 오고... 등등 좋았습니다. 확률은 평소에 관심을 가지던 분야라서 학우분들에게 보다 많은 정보를 제공해준 것 같아 스스로 뿌듯했습니다. 통계에서는 학회 때 공부하던 내용이 나와 익숙해서 재밌었고 처음 본 내용도 많아 유익한 시간이었습니다. 마지막 주차에 ML 에 대해서 배울 때는, 활성화함수에 대해 수학적으로 배울 수 있어서 좋았습니다. 교수님께서 강의에서 강조하신 내용인 sigmoid 함수가 미분했을 때 특별해서 특별한거다, 다차원 방정식이 나왔을 때 미분을 통해 해에 접근하는데 이와 연관지어 생각할 수 있는 기회를 가지게 되어 감사합니다. 실습을 통한 기반을 다지고 훌륭한 강의로 지식을 채우고 학우들과의 소통을 통해 개념에 대해 익히고... 대학 와서 참여할 수 있었던 정말 active한 강의의 끝인 것 같습니다. 7주 동안 잘 배웠습니다.
Ch 3장. Self Evaluation 1. (개인 성찰 노트) (20점)
Class |
Basic Math for AI |
||||||
Name/이름 |
김진웅 |
major / 학 과 |
컴퓨터공학과 |
||||
학습한 내용 |
인공지능 개념 이해에 필요한 선형대수학(SVD), 미적분학(GDM), 확률통계학, 인공지능(PCA, BP) |
||||||
자기 점검표 |
|||||||
활동(Activity) |
Excellent |
Good |
Fair |
||||
1. |
나는 개인학습을 할 때 다양한 학습 자료를 사용하였다. |
∨ |
|
|
|||
2. |
나는 새로운 정보와 지식제공에 기여하였다. |
∨ |
|
|
|||
3.
|
나는 토의에 적극적으로 참여하였고 토의의 촉진과 이해를 위한 적절한 질문을 많이 제공하였다. |
∨ |
|
|
|||
4. |
나는 우리 반이 원활한 학습활동을 하는데 기여하였다. |
∨ |
|
|
[성찰노트]
※ 다음 항목들을 고려하여 자신의 학습과정과 내용을 기록하시오.
1. 나는 지금 수행되고 있는 학습의 진행내용을 이해하고 있는가?
어려운 개념이 나왔을 때는 한 번에 이해하지 못했지만 계속 읽고 과정을 써보고 인터넷에 있는 각종 자료를 읽어보아서 나만의 것으로 만들어 지금 수행하고 있는 학습의 진행내용을 완전히 이해하고 있습니다. 중간과 동일하게 진행하였으며 학습의 진행내용을 완전히 이해하고 있습니다.
2. 어떤 방법을 통해서 학습하였는가? (학습방법 및 자료)
강의를 들으면서 교재를 읽고 개념이 나오면 잠시 강의를 멈추어 노트에 직접 필기하였습니다. 강의가 끝나면 들었던 내용을 필기한 노트와 교재를 기반으로 요약하여 다시 노트에 적었습니다. 강의와 교재뿐만 아니라 어떤 개념이 이해가 안 될 때는 인터넷에 올라온 강의자료, 그림들을 찾아보고 이해하였습니다. 또 Q&A 활동을 통하여 배웠던 개념을 더 완벽하게 정리하였습니다. 중간과 동일하게 진행하였습니다.
3. 본 강좌의 학습활동을 통하여 무엇을 배웠나?
인공지능 개념 이해에 필요한 선형대수학과 미적분학을 집중적으로 배웠습니다. 특히 인공지능 개발에 쓰이는 기술을 알아가는 데 필수적인 Singular Value Decomposition, Gradient Descent Method와 이를 뒷받침하는 기초지식을 배웠습니다. 인공지능 개념 이해에 필요한 확률통계학과 인공지능을 집중적으로 배웠습니다. 특히 인공지능 개발에 쓰이는 기술인 Principal Component Analysis 그리고 신경망의 Back-Propagation과 이를 뒷받침하는 기초지식을 배웠습니다.
선형대수학, 미분적분학, 확률 그리고 빅데이터와 인공지능에 대한 기본적인 내용을 배울 수 있었습니다. 또 QnA게시판을 통해 많은 도움을 받아서 수업 내용을 조금 더 깊이 이해하고 다른 학우분들과 insight를 나누는 방법을 배울 수 있었습니다.
(중간) 처음 약 2주차 동안은 벡터와 행렬, determinant, vetor space, rank, normal equation, 선형변환 ,고유값, 행렬의 대각화, LU분해, QR분해, SVD 등을 학습하였습니다. 그 중에서도 SVD혹은 null space과 같은 방법으로 행렬의 크기를 줄여서 문제를 풀수가 있고, 이런 것들이 손으로 문제를 풀수 있는 범위가 아니라 더 큰 숫자, 행렬 크기에 대해서 컴퓨터가 이런 방식으로 계산하는게 아닐까 라는 Insight를 가지게 되었습니다. 또한 이후에 배운 미분적분학 분야에서는 gradiant=0인 점이 critical point이고, 헤시안 행렬의 고윳값을 통해서 극대 극소를 판단할 수 있다는 사실이 고등학교때 배워보지 못했던 내용이여서 인상 깊었습니다.
(기말) 통계학에서는 순열, 조합, 확률, 조건부 확률에 대해서 학습하였으며 우리 실생활에서는 확률분포가 훨씬 더 많이 연결되어있다는 것을 깨닫게 되었습니다. 특히 이산확률분포에서 베르누이 분포, 이항분포, 푸아송분포를, 연속확률분포에서 균등분포, 정규분포, 지수분포에 대해 배워서 확률분포를 대하는 태도가 조금 더 넓어졌습니다. 그밖에도 중심극한정리 결합 확률 분포와 공분산등을 배우며, 일상생활에서 어떻게 수학이 활용되는지 간접적으로나마 느껴볼 수 있었습니다. 마지막으로 수학적 지식이 인공지능에 어떻게 적용되는지를 기반으로 기본적 인공지능 모델들과 인공신경망의 구조는 다른 수업에서 배울 수 없었던 내용들이었고, 인상 깊었습니다.
4. 다른 동료들로부터 무엇을 배웠는가?
문의 게시판에 질문하고 답변을 얻으면서 알고 있던 지식에 추가적인 도움을 얻었습니다. 반대로 다른 동료들의 질문에 답변하면서도 그동안 배운 것을 좀 더 탄탄하게 정리할 수 있었던 좋은 기회였습니다. 배운 것을 직접 실습해보는 과정을 보고 어떤 분야에서 지금까지 배웠던 것을 어떻게 쓸지를 다양하게 알게 되었습니다. 또한, 동료들의 개념이나 적용에 접근하는 다양한 관점을 확인할 수 있었습니다. 중간과 동일하게 질문과 답변을 하면서 배운 것을 정리해 나갈 수 있었고, 여러 활용 분야와 데이터들을 접하여 다양한 관점을 확인할 수 있었습니다.
개념적인 측면에서는 기존에 벡터 정사영에 대해 질문해주신 학우분들이 꽤 많았고 그 분들을 통해서 벡터를 조금 더 깊게 애해하게 되었습니다. 이밖에도 통계에 대한 Insight를 주신 분들이 만았습니다. 통계가 단순히 암기하고 수학적 문제를 풀기위한 수단이 아니라 실제 생활에서 데이터를 분석하고 활용하는데 가장 기본이 되는 학문이라는 깨달음을 체감하게 해주셨습니다.
5. 새롭게 배운 내용을 실제 생활에 어떻게 적용할 것인가?
인공지능은 사람이 생각하는 것처럼 행동하여 사람에게 지금껏 없었던 편의를 줄 수 있는 혁신적인 도구입니다. 앞으로 쏟아질 인공지능 기술에 대비하여, 이번 강의에서 새롭게 배운 기본 수학지식을―아직은 갈 길이 멀지만―인공지능의 개념 이해와 원리 이해, 기술 개발에 유용하게 사용할 것입니다. 부차적으로, 데이터 분석도 이러한 수학지식이 필요합니다. 빅데이터를 분석할 일이 있을 때 유용하게 적용할 것입니다. 중간과 마찬가지로 인공지능 이해 및 개발 그리고 빅데이터 분석에 적용할 것입니다.
저는 4주차에서 배운 중적분에 관한 내용이 가장 인상 깊었고, 우리 일상생활에 많이 사용 될 수 있다는 느낌을 받았습니다. 앞서 언급하였듯이 2차원 공간에서만 이해하고 있었던 적분이 3차원으로 확장되면서, 이렇게 물체의 겉넓이나 부피를 적분을 통해 계산을 할 수 있고 이것이, 직접 해보지는 않아서 모르겠지만 3D 프린터처럼 일상생활의 여러 가지 과학 기술에 활용이 되겠다는 것을 알게 되었습니다. 제가 지금 당장 어떤 기술을 개발하고 코딩을 할 수 있는 것은 아니지만, 혹시 기회가 된다면 이번 수업을 통해 새롭게 배운 내용들이 기반이 될 것 같습니다.
뿐만 아니라 마지막 7주차에 배운 인공지능에 대한 개괄적인 내용들이 정말 인상 깊고 실제 생활에 가장 많이 적용 될 것이라고 생각합니다. 저는 코딩을 하거나 인공지능을 개발하는 사람이 되기에는 실력과 능력이 부족합니다. 하지만 같은 도전학기 중에 최재붕 교수님의 ‘스마트폰이 만든 신인류, 포노사피엔스’라는 수업을 들었습니다. 이때, 뉴노멀, 4차산업혁명시대를 살아가고 있는 우리는, 코딩을 못하더라도, 무언가 개발을 못하더라도 적어도 어떤 프로세스로 인공지능이 움직이는지는 알고 있어야 한다고 강조하셨습니다. 저는 그런 면에서 기초적인 궁금증과 갈증을 이상구 교수님의 ‘인공지능을 위한 기초수학’의 7주차 수업을 통해서 해소할 수 있었습니다. 실제 생활에서 저는 이제 인공지능이 돌아가는 기본적인 원리를 아는 사람이 되었고, 훗날 제 전공을 살려 다양한 콘텐츠를 만들 때, 다른 사람들 보다 더 넓고 깊이 보는 시야를 가지게 된 것이라 자신합니다.
6. Q&A 활동에서 자신의 역할과 기여도에 대한 평가(자신의 활동에 점수를 주고 그 이유를 적으세요.) :
- 매주 Q&A 활동에 참여하여 질문과 답변, 요약과 실습을 꾸준히 올려 다른 동료들의 학습을 도왔고 도움을 받았습니다. 그리고 공부하는 데 도움이 될 만한 정리를 하여 올렸습니다.
- 90점
- 개인사정으로 주차 초반에 강의를 못 들어 학습이 조금 늦어져 Q&A 활동이 중간 때보다 적었지만, 매주 할당량은 채웠고 나름대로 정리하고 답변하여 Q&A 활동에 참여하였습니다.
- 중간고사까지는 제 스스로의 활동에 대해 70점을 주었습니다. 당시 저는 “저는 기존까지는 주어진 개념을 이해하는 데에 너무 많은 시간이 걸려 QnA활동을 주도적으로 이끌어 나가는 사람은 아니었기 때문입니다. 하지만 이후 어느 정도 개념이 이해되고 나자, 제가 아직 스스로 문제를 내고 질문을 하는 것까지는 가지 못했지만 Finalized된 여러 학우분들의 질의 응답을 혼자 읽고 이해하면서 제 스스로 많이 배웠다고 여기기 때문에 참여 점수는 저조하더라도 스스로 많은 성장을 했다고 여겨 70점을 주고 싶습니다.” 라고 서술하였습니다.
이점에 있어서 여전히 저는 개념을 이해하는 데에 많은 시간을 쏟았습니다. 또 다른 분들의 속도에 맞춰서 질의응답을 열심히 하지 못했다는 점이 아쉬워서 모든 분들의 질의응답과 교수님의 답변을 읽고 이해가는 부분에는 이해가 되었다, 질문이 생기면 그 및에 짧게 질문을 담았습니다. 하지만 더 잘 할 수 있었지 않았을까 하는 아쉬움이 조금 남아서 원래 저에게 주었던 70점 보다는 조금 더 낮은 점수인 65점을 주게 되었습니다.
7. 다른 학생에 대한 평가
: 이 수업은 학생들의 참여도를 이끌어내는 특별함이 있는 것 같습니다. 몇몇 눈에 띄게 열심히 하시는 분들도 계시지만, 대부분의 학생들이 협력하며 공부하는 과정에서 서로에게 긍정적인 시너지를 만들고 있고 이에 저도 감사하게 많이 배우고 있습니다.
꾸준히 Q&A활동을 하며 소통한 동료분들이 좋았습니다. 모르면 물어보고, 알면 답변하고 정리하여 도움을 주는 것이 Q&A활동의 목적이라 생각하여 열심히 참여하였고 그렇게 꾸준히 동참해 주신 동료분들이 이번 강의를 잘 수강하였다고 생각합니다. 중간과 마찬가지로 꾸준히 Q&A활동을 하며 소통한 동료분들이 좋았습니다.
다른 학우분들께서 적극적으로 QnA에 활동해 주셔서 저처럼 수학에 대해 두려움을 가지고 있는 사람들에게는 큰 도움이 되었습니다. 그분들이 올려주시는 정리나 질의응답만 열심히 읽어 보아도 제가 모르고 있던 사실들을 정말 많이 깨달을 수 있었기 때문입니다. 열정적으로 질의응답에 참여해 주시는 분들이 계셔서 제가 학습하는데 도움이 많이 되었고 감사했습니다. 교수님께서 수업 처음에 말씀해주셨던, 이 수업은 함께 소통하고 대화를 통해서 배워가는 수업이라고 말씀해 주셨던 부분이 이런 점 때문이었구나 하고 깨닫게 되었습니다.
Self Evaluation 2. (개인 성찰 노트 2)
과 목 명 |
Basic Math for AI |
||||||||
이 름 |
김진웅 |
학 과 |
컴퓨터공학과 |
||||||
평가항목 |
전혀 아니다 |
아니다 |
약간 아니다 |
약간 그렇다 |
그렇다 |
매우 그렇다 |
|||
1. |
온라인-오프라인 출석을 규칙적으로 하였다. |
|
|
|
|
|
∨ |
||
2. |
Q&A에 적극적으로 참여하였다. |
|
|
|
|
|
∨ |
||
3. |
Q&A 내용에 적합한 질문과 응답을 하였다. |
|
|
|
|
|
∨ |
||
4. |
동료에게 도움이 되는 지식과 정보를 제공하였다. |
|
|
|
|
|
∨ |
||
5. |
다른 동료의 의견을 존중하였다. |
|
|
|
|
∨ |
|
||
6. |
Q&A 운영 및 의견수렴과정에 긍정적으로 기여하였다. |
|
|
|
|
|
∨ |
||
7. |
이번 강좌의 동료와 다른 수업도 듣고 싶다. |
|
|
|
|
∨ |
|
[의견]
▶ 자체평가에 따른 잘한 점
온라인 출석을 밀리지 않고 규칙적으로 하였고, Q&A에 적극적으로 참여, 그 내용에 적합한 질문과 응답을 하여 동료에게 도움이 되는 지식과 정보를 제공하였습니다. 다른 동료의 의견을 존중하여 Q&A 운영 및 의견수렴과정에 긍정적으로 기여하였습니다. 중간과 마찬가지로 온라인 출석을 밀리지 않고 규칙적으로 하였고, Q&A에 적극적으로 참여, 그 내용에 적합한 질문과 응답을 하여 동료에게 도움이 되는 지식과 정보를 제공하였습니다. 다른 동료의 의견을 존중하여 Q&A 운영 및 의견수렴과정에 긍정적으로 기여하였습니다. 온라인 강의를 늦지 않고 꼬박꼬박 수강하였고, 7주차까지의 모든 개념은 정말 완벽하게 알고 있다고 자부할 수 있습니다. 또한 다른 분들의 QnA를 읽으며 많이 성장했고 특히 통계에 있어서는 제가 생각하지 못한 부분에 대해 실생활에 활용할 수 있음을 QnA를 통해 알게 되었습니다. 이런 참여도 측면에서는 꽤 잘해왔다고 생각합니다.
▶ 자체평가에 따른 아쉬운 점
수업 활동과 Q&A 활동을 열심히 했기에 저에 대해 아쉬운 점은 없습니다. 중간 때 보다 참여가 조금 떨어졌지만, 배운 것을 모두 이해하였고, 매주 할당량을 채워 아쉬운 점은 없습니다.
(중간) 제가 직접 질문을 던지는 일이 적었습니다. 개인적인 변명으로는, 개념을 따라가는 것에 급급했기 때문입니다. 또 제가 많이 부족하다고 여겨 Finalized를 받는 과정이 없었고 다른 분들의 Finalized를 열심히 보기만 하였습니다. 어떻게 보면 정말 수동적으로 이해하는 것에 급급했던 것 같습니다. 하지만 중간고사 기간을 기점으로 통계 부분은 미리 봐두고, 조금 더 본 수업에 시간을 많이 투자하여 제가 직접 질문을 하고, 변형 문제를 만드는 것도 해보고 싶습니다.
(기말) 중간고사 공부를 하면서 저는 개념을 따라가는 것에 무조건적인 우선순위를 두었다는 것에 문제가 있다는 것을 깨달았음에도 불구하고, 제가 기대한 만큼의 능동적인 참여자가 되지 못한 것 같아 아쉽습니다.
Self Evaluation 3. (개인 성찰 노트 3)
자신의 학습에 도움이 된 우수한/성실한 동 료 평 가
과 목 명 |
Basic Math for AI |
|||||||
|
(두 명 이상의 추천을 받은 학생은 가산점) |
|||||||
피평가자(동료) Best classmate |
김진웅, 박은아, 유가이올렉산드르, 김범준, 전재현, 나종진, 장환승, 박진형 |
|||||||
평가자(작성자) |
정원철 |
|||||||
평가항목 |
전혀 아니다 |
아니다 |
약간 아니다 |
약간 그렇다 |
그렇다 |
매우 그렇다 |
||
1. |
온라인-오프라인 출석을 규칙적으로 하였다. |
|
|
|
|
∨ |
|
|
2. |
Q&A에 적극적으로 참여하였다. |
|
|
|
∨ |
|
|
|
3. |
Q&A 내용에 적합한 질문과 응답을 하였다. |
|
|
|
|
∨ |
|
|
4. |
동료에게 도움에 되는 지식과 정보를 제공하였다. |
|
|
|
|
∨ |
|
|
5. |
다른 동료의 의견을 존중하였다. |
|
|
|
|
∨ |
|
|
6.
|
Q&A 운영 및 의견수렴과정에 긍정적으로 기여하였다. |
|
|
|
|
∨ |
|
|
7.
|
이번 강좌의 동료와 다른 수업도 듣고 싶다. |
|
|
|
|
∨ |
|
|
[의견]
위 학우분들은 제가 생각하기에 다음과 같은 기준(5)에 적어도 하나 이상은
▶ 모두가 공감할 수 있을 만한 질문을 던지는가?(난이도 무관) ▶ 모두가 이해할 수 있을 정도로 자세하게 풀어서 잘 정리를 하는가? ▶ 퀄리티 좋은 예제를 찾아서 문제 풀이 및 실습을 해보고 이를 잘 정리하여 공유해주는가? ▶ 다른 학우분들의 질문에 자세하고 성실하게 답변을 해주는가? ▶ Q&A 과정에서 활발한 참여를 통해 하나의 완성된 컨텐츠를 함께 만들어
▶ 자체평가 중 미비점 없습니다. 새롭게 추가한 박진형 학우님은 다른 학우분들의 글을 모아서 reFinalize해줌으로써 어떠한 개념에 대하여 양질의 컨텐츠를 만들어주셨습니다. |
Self Evaluation 4. (개인 성찰 노트 4)
Action Learning Class 반응평가(학생용)
* 1~16 평가내용을 읽고 「매우긍정~매우부정」 중 하나에 V 표시하시오. 그리고 5, 12, 14번은 연결문항에 답하시오.
평가내용 |
평가 |
||||
매우 긍정 |
긍정 |
보통 |
부정 |
매우 부정 |
|
1. 우리 방식의 수업에 적극적으로 참여하였다. |
∨ |
|
|
|
|
2. 교수는 학생들의 능력을 발휘하도록 도와주었다. |
|
∨ |
|
|
|
3. 우리 방식의 학습 과정을 통해서 새로운 지식을 획득하였고 지식수준이 향상되었다. |
∨ |
|
|
|
|
4. 이 과정을 통하여 추론기술이 향상되었다. |
|
∨ |
|
|
|
5. 이 과정을 통하여 자기 주도적 학습기술을 습득하였다. |
|
∨ |
|
|
|
6. 이 과정을 통하여 문제해결기술을 습득하였다. |
|
∨ |
|
|
|
7. 이 과정을 통하여 학습운영기술을 습득하였다. |
|
∨ |
|
|
|
8. 이 과정을 통하여 전문성이 향상되었다. |
|
∨ |
|
|
|
9. 이 과정은 실제 연구 상황과 유사하였다. |
|
∨ |
|
|
|
10. 학습과정에 대한 평가 방법이 합리적이었다. |
|
∨ |
|
|
|
11. 문제해결을 하면서 학습주제를 더 잘 알게 되었다. |
∨ |
|
|
|
|
12. 학습과정에서 학습주제와 관련한 활발한 의사소통이 이루어졌다. |
|
∨ |
|
|
|
13. 학습결과는 문제해결절차를 통해서 산출되었다. |
∨ |
|
|
|
|
14 전반적으로 우리 방식의 수업이 효과적이라고 생각한다. |
|
∨ |
|
|
|
15. 우리 방식의 수업에 다시 참여하고 싶다. |
|
∨ |
|
|
|
* 5, 12, 14 연결문항
5-1. 본 수업을 통해 자신이 습득한 자기 주도적 학습 기술을 구체적으로 설명하시오.
강의를 들으면서 노트필기를 하고 끝나고 한 번 더 정리하고 Q&A에 요약하였으며, 모르는 것이 나오면 찾아서 Q&A에 정리하여 올리는 과정을 통해 자기 주도적 학습기술이 전보다 향상되었습니다. 중간과 마찬가지로 강의를 들으면서 노트필기를 하고 끝나고 한 번 더 정리하고 Q&A에 요약하였으며, 모르는 것이 나오면 찾아 Q&A에 정리하여 올리는 과정을 통해 자기 주도적 학습기술이 전보다 향상되고 있습니다.
제가 이 수업을 통해 습득한 자기 주도적 학습기술은 여러 가지입니다. 그중에 가장 첫 번째는, 다른 학우분들과 의견을 공유하며 학습하는 것입니다. 저는 보통 혼자 공부하고 이해하는 사람이었습니다. 하지만 다른 분들의 QnA를 읽고 이해하고 저의 수학적 이해도가 향상되는 것을 보면서, 스스로 질문을 정의하고 답하는 것의 중요성을 깨달았습니다. 조금 더 구체적으로 저희 수업에 코딩 실습을 꼬박꼬박 해 오시는 분들의 게시물을 보면서 코드를 어떻게 변형하면 되는지를 알게 되었습니다. 또 문제를 직접 만들어보고 Finalized하는 분을 보면서 이분이 어떤 사고과정을 하고 계시는지 알게 되었습니다. 단순히 교수님께서 설명해주시는 것을 듣고 시험을 보는 수업이었다면 저보다 수학을 잘하시는 분들의 사고의 과정을 향유하기는 어려웠을 것입니다. 두 번째는, 컴퓨터 코딩을 이용한 학습방법입니다. 본 수업은 교수님께서 실습할 수 있는 코딩 툴을 제공해주셨기 때문에 만약에 손으로 문제를 풀고 실습을 했다면 10정도 밖에 변형해 보는 것이 최선이었다면 코딩 툴안에서 제가 변형하고 싶은 만큼 100이상의 변형을 통해 문제를 더 넓게 볼 수 있었습니다. 교수님께서 시키시기 때문에 하는 것이 아니라 제가 궁금해서 주도적으로 코딩 속의 숫자를 변형해 보면서 사고력이 많이 길러졌습니다.
12-1. 본 수업과정에서 자신이 참여한 활발한 의사소통을 구체적으로 설명하시오.
: 먼저 교수님의 강의를 수강하면서 저를 비롯해서 다른 학우분들이 학습하는 과정에서 다소 난해할 수 있는 주제, 개념적으로 잘 와닿지 않는 주제 등을 선별하였습니다. 이를 평소에 정리해두었던 노트나 인터넷 자료, 다른 수업 등을 참고하여 저 뿐만 아니라 다른 학우들이 보다 이해를 잘 할수 있도록 최대한 풀어서 정리/ 증명/ 문제풀이/ 활용 예제 등의 형태를 통해서 공유하기 위해 노력했습니다. 또한 질문글들을 보며 제가 아는 부분에 한해서는 최대한 풀어서 전달해드리려 했고, 저 역시 궁금했던 문제에 대해서는 여러 매체를 통해서 학습하여 성심껏 답변을 달았습니다.
Q&A 활동에 매주 참여하여 모르는 것은 질문(5개), 아는 질문에 구체적으로 답변하고(21개), 강의를 들은 것을 간단명료하게 요약(4개) 및 실습(4개)하여 올렸고, 모르는 것을 해결하고 그 내용을 정리하여 동료들이 볼 수 있게 올렸습니다(4개). 다른 동료분들의 글에도 답변을 달아 참여하였습니다(7개). Q&A 활동에 매주 참여하여 총 65개의 참여한 게시물 중, 모르는 것은 질문(6개), 아는 질문에 구체적으로 답변하고(25개), 강의를 들은 것을 간단명료하게 요약(7개) 및 실습(7개)하여 올렸고, 모르는 것을 해결하고 그 내용을 정리하여 돌료들이 볼 수 있게 올렸습니다(6개). 번역 프로젝터를 맡았고(1개) 다른 동료분들의 글에도 답변을 달아 참여하였습니다(10개).
저는 제가 정리한 개념을 QnA게시판에 올렸습니다. 단순히 교재를 긁어 와서 복사하고 정리하는 것이 아니라 개념은 최소화 하되 그 개념을 이해하면서 제가 기존에 알고 있었던 내용과 비교하는 것이 의미 있다고 생각해 그런 comment를 많이 달기 위해 노력했습니다. 그 과정에서 교수님께서 comment가 진실성이 있다고 말씀해 주셔서 감사했고 약간의 자신감도 생겼습니다. 이제 제가 궁금했던 부분에 대해 적극적으로 질문하고 답해 나가고 싶습니다.
14-1. 우리 방식의 수업에서 효과적이었다고 생각되는 부분을 구체적으로 설명하시오.
인공지능 지식에 필요한 수학지식만을 집중해서 배운다는 것과 그것을 실제로 실습하는 것 그리고 그 두 개를 잘 실현해 낸 교재와 강의를 통한 학습이 가장 효과적이었습니다. 중간과 마찬가지로 교재와 강의를 통한 학습이 효과적이었습니다.
게시판 운영을 통해, 교수님이 확실한 답을 달아주시고 학우들과 생각을 공유하고 물어보고 하는 경험을 통해 학습에 대한 협력을 배울 수 있었습니다. 기존의 수업 방식이 듣기만 하고 끝내는 수동적인 학습이었던 반면에 이렇게 서로가 active하게 참여하는 방식의 수업은 스스로의 학습을 돕는 굉장히 효과적인 방법이라 생각합니다.
또한 기존의 수학 수업과 다르게 코드를 적극 활용했는데 큰 의미가 있다고 생각합니다. 어떻게 계산하는지 확실히 알고 있다면, 코드를 작성하는데에도 무리가 없고 계산에 도움을 받는거라 정말 효과적이었습니다.
앞서 언급했었던 QnA 게시판의 원활한 운영과 코딩 사이트를 이용해 실습해 볼 수 있다는 것이 가장 효과적이었습니다. 수학은 개념만 이해한다고 안다고 자부할 수 있는 과목이 아닙니다. 그것을 실제로 적용해 보는 과정에서 개념에 대해서 더 정확하게 알 수 있는데, 그저 손으로 따라 쓰거나 풀려진 문제를 눈으로 읽는 것은 적용하는 과정이 아닙니다. 하지만 실습 사이트에서는 교수님께서 설명해 주신 내용을 약간의 코드 변형이나 조금의 움직임을 통해서 그래프가 어떻게 변형되는지 직접 눈으로 확인해 볼 수 있었기 때문에, 개념의 이해에 시간이 오래 걸리는 저에게는 정말 효과적인 수업방식이었습니다.
교수님께서 저희의 QnA에 직접 답을 달아주신 부분이 정말 좋았습니다. 또 저는 제 스스로 계속 부족하다고만 여겨서 QnA에 늦게 참여하게 되었는데 계속해서 저에게 할 수 있다고 장려해 주셔서 감사했습니다.
1) 주입식 교육이 아닌 내가 궁금하거나 해결하고 싶은 문제를 직접 찾음
2) 다양한 매체를 통해 스스로 해결하거나 타인과 협력함으로써 그 문제를 해결함
3) 나 뿐만 아니라 남이 생각하는 방향 및 이해를 확인하며 개념을 좀더 높은 차원으로 끌어 올릴 수 있었음
4) 결과적으로 내가 이 수업을 들으면서 관심을 가졌던 주제를 유형의 결과물로써 남길 수 있음
20. 이 수업에서 보완해야 할 점은 무엇이라고 생각합니까?
1) 주입식 교육이 아닌 내가 궁금하거나 해결하고 싶은 문제를 직접 찾음
2) 다양한 매체를 통해 스스로 해결하거나 타인과 협력함으로써 그 문제를 해결함
3) 나만 아니라 남이 생각하는 방향 및 이해를 확인하며 개념을 좀더 높은 차원으로 끌어 올릴 수 있었음
4) 결과적으로 내가 이 수업을 들으면서 관심을 가졌던 주제를 유형의 결과물로써 남길 수 있음
이 수업은 선형대수학과 고등학교 수준의 미적분학 지식 없이는 원활한 진행이 어렵습니다. 제가 이 선행지식이 없었다면 제대로 수강하지 못했을 것입니다. 또 지금 교재도 훌륭하지만, 가끔 설명을 생략하여 이해가 어려울 때가 있어―물론 저의 소양이 부족한 경우겠지만―교재 내용에 대한 보충설명이 있다면 더 나아질 것 같습니다. 설명이 좀 더 쉬웠으면 좋겠고, 인공지능 부분에서 예제가 더 많았으면 좋겠고, 필요 없는 부분은 정리했으면 좋겠습니다.
개인적으로 ML 에 관련해서 수학적인 실습이 더 추가됐으면 좋겠다는 생각이 있습니다.
이 수업에 대한 아쉬움 보다는 처음 해야 하는 7주차의 도전학기를 제가 완벽하게 따라가지 못한 것 같다는 아쉬움이 남아 있습니다. 정규 수업에 비해서 호흡이 빨라서 이해 속도가 느린 저에게는 초반에 템포를 찾는 데에 시간이 많이 필요했습니다.
Open Feedback : 처음엔 글 올리기가 껄끄러웠습니다. 수업 잘 듣고 있습니다. 감사합니다, 교수님. 이번 강좌로 인공지능의 이해가 한 층 높아졌습니다. 감사합니다, 교수님.
Ch 4장. PBL Participation/Activity Part (30점)
(4장. 학습활동 참여 부분 )
매달 그리고 마지막에는 한 학기 동안 Q&A 통하여 논의에 참여했던 내용에 자신도 참여했던 것 모두와 기타 자신이 제공한 유의미한 정보 또는 그것에 자신이 참여한 부분을 모두 아래에 정리하시면 됩니다.
총 65개의 글에 참여하였습니다. (33-요약 및 답변)
소개(2개) 요약(7개) 실습(7개) 정리(6개) 풀이(2개) 질문(6개) 답변(25개) Comment(10개) 프로젝트(1개)
중간 총 47개의 글에 참여하였습니다. (33-요약 및 답변)
소개(1개) 요약(4개) 실습(4개) 정리(4개) 풀이(2개) 질문(5개) 답변(21개) Comment(7개)
기말 총 18개의 글에 참여하였습니다.
소개(1개) 요약(3개) 실습(3개) 정리(2개) 질문(1개) 답변(4개) Comment(3개) 프로젝트(1개)
소개(2개) (중간 1개 기말 1개)
1‘[HW] 자기소개 및 수강동기 - 컴퓨터공학과 김*웅’
안녕하세요 저는 컴퓨터공학과 김진웅입니다.
그 동안 인공지능을 이해하고 개발하는 것에 관심이 많았지만 어떻게 수학이 쓰이는지 연관성을 깨닫지 못하고 무엇을 알아야 하는지 모르고 있었는데
이번 '인공지능을 위한 기초수학' 강좌를 통해 그러한 소양과 지식을 갖출 수 있다는 생각이 들어 수강하게 되었습니다.
이번 도전학기에 선형대수학, 미적분학, 확률통계학 등 인공지능 이해 및 개발에 필수적이고 중요한 수학 지식들을 간추리고 응축하여 배워나가도록 하겠습니다.
앞으로 잘 부탁드립니다.
안녕하세요 교수님, 도전학기를 통해 교수님의 수업을 듣게 된 컬처앤테크놀로지융합전공 권*성입니다 :)
4차 산업혁명 시대가 도래하여, 인공지능과 데이터에 대한 학습은 필수적이라는 이야기는 정말로 많이 들었지만 사실 어디서부터 시작해야 할지, 어떻게 공부를 해야하는 것인지 막막하기만 하였습니다.하지만 교수님께서 개설해주신 인공지능을 위한 기초수학 강의를 통해 제가 작년에 배웠던 수학적 학습을 바탕으로 인공지능에 대한 가장 기초적이고 기본적인 내용을 학습 할 수 있을 것 같다는 생각이 들어 주저 없이 수강하게 되었습니다.
이 수업을 통해서 수학적 지식뿐만 아니라 앞으로 제가 어떤 방향으로 인공지능을 공부하고, 인공지능을 대해야 하는지 조금은 더 선명하게 알 수 있으면 좋겠습니다. 열심히 하겠습니다, 감사합니다. :)
안녕하세요, *** 저는 계량적인 툴을 활용하여 주식을 매매하는 이슈에 대해 관심을 가지고 개인적인 프로젝트를 진행하던 차에 포트폴리오 구성 단계에서 한계를 느꼈습니다. 따라서 인공지능을 이용하여 자산가격의 weight를 구하는 주제에 대해서 연구를 하고 싶어졌고, 기본기부터 학습할 필요성을 느껴 당 수업을 수강하게 되었습니다.
이번 수업을 계기로 인공지능의 기반이 되는 중요한 수학 개념들을 학습함으로써 머리속에 산재하던 개념을 좀더 쫀쫀하게 엮어 차후 진행하게 될 프로젝트에 직간접적으로 도움이 되었으면 하는 바람입니다.
감사합니다.
이상구(LEE SANGGU)7월 12일 오후 1:30
Welcome you in my class~~ Hope you can enjoy this class.1. Now Read and Study인공지능을 위한 기초수학 Basic Mathematics for Artificial Intelligence http://matrix.skku.ac.kr/math4ai/2. And Make a short summary on each Chapter (Every week, The First or The Best) .Part Ⅰ. 행렬과 데이터분석 http://matrix.skku.ac.kr/math4ai/part1/Part Ⅱ. 다변수 미적분학과 최적화 http://matrix.skku.ac.kr/math4ai/part2/...Then all others will be followed^^Start Now^^ Good luck^^
[Act06] (요약3 & 실습3) <[1주차] 강의 내용 복습 요약 & 실습 (3) _ 2019311465 이승재>
[1주차] 강의 내용 복습 요약 (3)
01 행렬의 연산 (합, 스칼라배)에 대해 간략히 배움
02 영행렬과 전치행렬, 전치행렬의 성질, 대각합에 대해 간략히 배움
03 역행렬 (가역행렬, 비가역 행렬)에 대해 간략히 배움
04 가역행렬의 기본 성질 4가지에 대해 간략히 배움
05 역행렬을 구하는 방법에 대해 간략히 배움
06 대각선 행렬, 스칼라 행렬, 대칭/반대칭 행렬, (상/하)삼각행렬에 대해 간략히 배움
07 치환 (반전, 홀치환과 짝치환), 행렬식에 대해 간략히 배움
08 가역행렬의 필요충분조건인 det(A) ≠ 0, 수반행렬에 대해 간략히 배움
09 일차 독립과 일차 종속, 이를 판별하는 방법에 대해 간략히 배움
10 부분공간, 해공간, 생성집합에 대해 간략히 배움
11 기저와 그 성질에 대해 간략히 배움
12 nullity(A)에 대해 간략히 배움
Finalized by 채희준
Q: llXll 으로 표현되는 노름의 값이 X*X로 표현되는 내적의 값과 동일하게 x1 x2 ..... xn 의 값을 제곱한 것으로 표현되는것 같은데 왜 내적이 노름의 제곱 (llXll)2 으로 표현되는지 이해가 안됩니다. 그리고 노름의 개념이 함수에서 길이를 표현하는 개념인것 같은데 내적은 어떤 개념으로 표현될 수 있는지 궁금합니다.
A:
김진웅(2015****73)7월 17일 오전 11:44
Norm의 정의 ||x|| = sqrt(x1^2 + ... +xn^2) 내적의 정의 x.y = x1y1 + .. +xnyn x.x = x1x1 + ... + xnxn = (sqrt(x1x1 + ... + xnxn))^2 = (||x||)^2
나종진(2017****17)7월 17일 오후 12:15
노름은 길이를 표현하는 개념이지만 내적은 어떤 개념인지 교재에 나오지 않아서 저도 내적을 어떤 개념으로 이해해야될지 고민이었습니다. 저는 내적을 각도 개념으로 이해했습니다. http://matrix.skku.ac.kr/LA-K/Ch-1/LA-Lab-kor-Ch-1.html
여기에 코시-슈바르츠 부등식 아래 정의를 보게되면 x·y=||x||*||y||*cosΘ 라고 나와있어 저는 각도의 개념으로 이해했습니다. 도움이 되셨으면 좋겠습니다.
임동선(2017****79)7월 17일 오후 12:55
엄밀하게 말하면 대칭성, 선형성, 정부호를 만족하는 벡터공간을 내적공간이라고 합니다.
그 중에 가장 대표적인 것이 R^n 에서 위와 같이 정의된 것 입니다. 또한 주어진 내적 공간에 대해서 노름을 정의를 할 수 있습니다. 위와 같이 노름을 정의하면 잘 정의된 노름이고, 위의 경우는 두 값이 같습니다.
이재화7월 17일 오후 5:17
1. 직관적으로 노름은 벡터의 길이, 내적은 두 벡터 사이에 이루는 각을 정의하는 개념이라고 생각하면 됩니다.
2. 노름과 내적은 주어진 데이터가 얼마나 유사한지를 비교하는데 사용되는데 각각 사용하는 척도가 다릅니다.
3. 두 데이터 사이의 거리로 유사성을 비교할 때 노름이 사용되고, 두 데이터 사이의 패턴(방향)만 관심있을 때에는 두 벡터 사이의 각으로 유사성(코사인 유사도)을 비교합니다. 이때 내적이 사용됩니다. [참고] http://matrix.skku.ac.kr/math4ai-intro/W3/
4. 내적을 활용한 코사인 유사도는 자연어 처리에도 사용된다고 합니다. [참고] https://wikidocs.net/24603
이상구(LEE SANGGU)7월 17일 오후 11:27
실수크기는 절대값 | x |, 벡터의 노름은 || x || Matrix norm 은 세개 bar 로 ||| A ||| 로 구분하여 사용한다 고 이해하시면 됩니다.
추가 답변 및 정리: http://matrix.skku.ac.kr/math4ai/ 에서 인용
정의. |
|
의 벡터
에 대하여
을 의 노름(norm, length, magnitude)이라 한다.
정의. |
[내적(Euclidean inner product, dot product)] |
을 와 의 내적(Euclidean inner product, dot product)이라 하고 로 나타낸다. 즉
=
=
이 두 정의를 비교하면,
▪
노름의 제곱은 내적과 같음을 확인할 수 있습니다.
그리고 노름은 벡터의 길이 또는 크기를 나타낸다면,
내적은 두 벡터 사이에 이루는 각 또는 두 벡터 사이의 관계를 나타낸다고 생각하면 될 것 같습니다. ※참고자료
1. http://matrix.skku.ac.kr/LA-K/Ch-1/LA-Lab-kor-Ch-1.html
2. http://matrix.skku.ac.kr/math4ai-intro/W3/
주어진 데이터를 분류하기 위해서는 각 데이터마다 우리가 다룰 수 있는 (계산할 수 있는) 형태로 표현할 수 있고, 각 범주와 얼마나 가까운지 (혹은 유사한지) 계산하여 최종 판단해야 한다.
이러한 척도를 데이터의 유사도(similarity)라고 한다.
그렇다면 서로 다른 두 데이터가 얼마나 유사한지 어떻게 평가할 수 있을까?
가장 쉽게 생각해볼 수 있는 것은 두 데이터 사이의 거리를 계산하는 것이다....
는 원점에서 점 에 이르는 거리와 같다. 따라서 두 벡터 , 에 대하여 는 두 점 와 사이의 거리(distance)가 되며, 다음이 성립한다.
위 정의는 3차원은 물론 고차원 데이터에 대해서도 동일한 형태로 확장된다.
그러나 데이터 분석가가 단지 데이터의 패턴(방향)에만 관심이 있는 경우, (거리)척도는 적합하지 않다.
예를 들어, 아래와 같이 좌표평면 상에 벡터로 표현된 두 데이터 와 는 패턴(방향)은 유사하지만
거리는 매우 큰 값을 갖게 되어, (거리)척도로는 “두 데이터가 관계가 없다”고 판단하게 되기 때문이다.
단지 데이터의 패턴(방향)에만 관심이 있는 경우에는 유사도를 어떻게 측정해야 할까? 이번에 우리는 데이터의 패턴(방향)에만 관심이 있으므로,
두 데이터(벡터)가 이루는 사잇각 로 유사도를 측정할 수 있을 것이다. 예를 들어, 가 작으면 데이터의 유사도가 높고, 가 크면 데이터의 유사도가 낮다고 판단할 수 있다.
그러나 사잇각은 벡터의 내적(inner product)으로부터 정의되므로, 를 직접 계산하기 보다는 벡터의 내적을 이용하여 ... 의 코사인 값으로 유사도를 측정한다. 이를 코사인 유사도(cosine similarity)라고 한다.
장환승(2016****69)7월 18일 오후 10:53
내적이라는 개념은 알고 있었는데, 자연어 처리 또는 데이터의 패턴 개념에 있어 내적이라는 것이 어떻게 활용되는지 보니까 신기하네요. 코사인 유사도 라는 개념이 내적과 글을 통해 확 와닿습니다. 감사합니다.
권서영(2020****27)7월 19일 오전 1:29
Final Comment: 제가 교수님 강의를 공부하면서 미묘하게 헷갈리던 부분이 무엇인지 확신할 수 없어 고민중이었는데, 학우님께서 노름과 내적의 개념에 대해 질문한 글을 읽고 저 또한 개념정리가 미약하다는 것을 깨달을 수 있었습니다. 많은 학우분들이 내적은 '각'의 개념이라 정리해 주셔서 개념 정리가 되고, 왜 각이며 내적이 어떤 분석 (데이터의 패턴 혹은 방향)에 사용되는지 정리해주신 답변들을 읽어보며 내적과 노름의 개념과 응용을 정리할 수 있었습니다. 사실 내적이 왜 ||x||로 바 두 개를 사용하는 것일까? 라는 일차원적인 의문을 가지고 있었으나 (잘못된 생각이지만) 질문이 유치하게 보여 묻지 못했습니다. 하지만 교수님이 "실수크기는 절대값 | x |, 벡터의 노름은 || x || Matrix norm 은 세개 bar 로 ||| A ||| 로 구분하여 사용한다 고 이해하시면 됩니다."라고 서술해주셔서 납득을 할 수 있었습니다. 먼저 강의 내용을 다 이해하고 정리하고 다른 분들 질문과 Finalized된 글을 읽어 볼 것이 아니라 (교재를 읽은 후 ... 다른 학생들이 토론한 내용을) 미리 읽으면서 (Re-Finalize 하거나, 추가로 질문하거나, Final 코멘트를 달면서) 자신의 이해를 더욱 높일 수 있고 추가적인 지식도 얻을 수 있음을 깨달았습니다.
좋은 질문과 답변 공유해 주셔서 감사합니다.
이상구(LEE SANGGU)7월 18일 오후 9:42
누가 위의 요약 내용 읽고 ... 배우거나 느끼거나 .. 한 개인적인 감성을 담은 Comment 를 꼭 다세요^^
장환승(2016****69)7월 18일 오후 10:53
내적이라는 개념은 알고 있었는데, 자연어 처리 또는 데이터의 패턴 개념에 있어 내적이라는 것이 어떻게 활용되는지 보니까 신기하네요. 코사인 유사도 라는 개념이 내적과 글을 통해 확 와닿습니다. 감사합니다.
권서영(2020****27)7월 19일 오전 1:29
제가 교수님 강의를 공부하면서 미묘하게 헷갈리던 부분이 무엇인지 확신할 수 없어 고민중이었는데, 학우님께서 노름과 내적의 개념에 대해 질문한 글을 읽고 저 또한 개념정리가 미약하다는 것을 깨달을 수 있었습니다. 많은 학우분들이 내적은 '각'의 개념이라 정리해 주셔서 개념 정리가 되고, 왜 각이며 내적이 어떤 분석 (데이터의 패턴 혹은 방향)에 사용되는지 정리해주신 답변들을 읽어보며 내적과 노름의 개념과 응용을 정리할 수 있었습니다. 사실 내적이 왜 ||x||로 바 두 개를 사용하는 것일까? 라는 일차원적인 의문을 가지고 있었으나 (잘못된 생각이지만) 질문이 유치하게 보여 묻지 못했습니다. 하지만 교수님이 "실수크기는 절대값 | x |, 벡터의 노름은 || x || Matrix norm 은 세개 bar 로 ||| A ||| 로 구분하여 사용한다 고 이해하시면 됩니다."라고 서술해주셔서 납득을 할 수 있었습니다. 먼저 강의 내용을 다 이해하고 정리하고 다른 분들 질문과 Finalized된 글을 읽어 볼 것이 아니라 미리 읽으면서 자신의 이해를 더욱 높일 수 있고 추가적인 지식도 얻을 수 있음을 깨달았습니다. 좋은 질문과 답변 공유해 주셔서 감사합니다.
[1주차] 강의 내용 실습 (3)강의 내용에 관한 실습 내용입니다.
{자체 예제 131.} 첨가행렬 [A:I]의 RREF를 이용하여 행렬 A의 역행렬을 구하시오.
A =
[Sage 코드 및 답안]
{자체 예제 132.} 실수 범위에서 랜덤으로 생성시킨 5*5 행렬 A에 대하여 대각합을 구하시오.
[Sage 코드 및 답안]
{자체 예제 133.} 유리수 범위에서 랜덤으로 생성시킨 7*7 행렬 A에 대하여 행렬식을 구하시오.
[Sage 코드 및 답안]
{자체 예제 134.} 행렬식과 수반행렬을 이용하여, 정수범위에서 랜덤으로 생성시킨 5*5 행렬 A의 역행렬을 구하시오.
[Sage 코드 및 답안]
{자체 예제 135.} 행렬식을 이용한 일차독립 판정법을 이용하여, 4차원상의 네 벡터 X1 = (-1, 0, 0.7, 5) , X2 = (1/7, -3, 1.1, -0.3), X3 = (-5, 1.4, -1, 0), X4 = (4, 2, -5, 3)에 대하여 {X1, X2}는 일차독립임을 확인하시오.
[Sage 코드 및 답안]
Null Space, Left Null Space
작성자 : 유가이올렉산드르(2018****33)작성일 : 7월 18일 오후 9:11
조회수 : 27 [Final OK by SGLee] Finalized by 한수현, 유가이 올렉산드르, 박지수] [HW-해공간을 구하는 법, f Kernel(Null Space), Right Null Space, Left Null Space
Final OK by SGLee [HW-해공간을 구하는 법, finalized by 한수현, re-finalized by 유가이 올렉산드르] Kernel(Null Space), Right Null Space, Left Null Space, 질문 by 박지수, 답변
[HW] 해공간을 구하는 법 , Span <(-3, 1, 0, 0), (-5, 0, -2, 1)>이 해공간, Kernel(Null Space), Right Null Space, Left Null Space
질문 by 박지수
답변 및 Finalized by 한수현
Final OK by SGLee
추가 답변 및 Re-finalized by 유가이 올렉산드르
Q:
교재 p92 예제2 답이 나오지 않아서 제가 무엇을 잘못하고 있는지, 어떻게 푸는 것인지 질문드립니다 .
A:
Final. 해공간 , 박지수 학우님의 질문에 대한 답 . Span 인 <(-3, 1, 0, 0), (-5, 0, -2, 1)>이 해공간 입니다 .
풀이는 이런 식으로 하면 될 것 같습니다 .
해공간을 표현하는데 사용하는 두 벡터는 해공간에 속해있는 무수히 많은 벡터 중 두 개를 끌어오면 되는 것이기 때문에 해공간의 표현은 다양하게 할 수 있습니다 . 저 마지막 식에서 (x2, x4)가 (3, -2)일 때 해는 (1, 3, 4, -2)이고 , (5, -3)일 때 해는 (0, 5, 6, -3)이므로 제가 구한 span(S)에는 예제 답에 나와있는 두 해가 포함 되어있으므로 제가 쓴 <(-3, 1, 0, 0), (-5, 0, -2, 1)>도 해공간의 표현 중 하나임을 알 수 있습니다 .
박지수 학우님도 저와 같은 답이 나오셨던데 , 그 답도 맞다고 보면 될 것 같습니다 .
추가 답변:
► Definitions
● Subspace
A subspace of a vector V is a subset H of V that has three properties :
(1) The zero vector of V is in H .
(2) H is closed under vector addition. That is, for each u and v in H , the sum u + v is in H .
• u, v ∈ H => u + v ∈ H (덧셈에 닫혀 있다 .)
(3) H is closed under multiplication by scalars. That is, for each u in H and each scalar c , the vector cu is in H .
• u ∈ W, с ∈ R => ku ∈ W (스켈라배에 닫혀 있다 .)
Note that , properties (1), (2), and (3) guarantee that a subspace H of V is itself a vector space, under the vector space operations already defined in V .
Remark: The best way to test for a subspace is look first for the zero vector. If 0 is in H , then properties (2) and (3) must be checked. If 0 is not in H , then H cannot be a subspace and thee other properties need not to be checked.
● Null Space
The null space of an mxn matrix A , written as Nul A , is the set of all solutions of the homogeneous equation Ax = 0 . In set notation,
Nul A = {x : x is in R n and Ax = 0}
Remark:
A more dynamic description of Nul A is the set of all x in R n that are mapped into zero vector of R m via the linear transformation x -> Ax . See Figure 1 below.
Figure 1
Important Theorem:
The null space of an mxn matrix A is a subspace of R n . Equivalently, the set of all solutions to a system Ax = 0 of m homogeneous linear equations in n unknowns is a subspace of R n .
Proof:
First, notice that Nul(A) is a subset of R n , because A has n columns (Nul(A) ⊆ R n ).
So, we need to check the 3 properties(see above) of a subspace :
1. It’s clear that 0 is in Nul(A).
2. Let u and v be any two vectors in Nul(A).
Then we have:
• To show u + v is in Nul(A), we must show that: A(u + v) = 0
• Then, using a property of matrix multiplication, compute: Au + Av = 0 + 0 = 0
• Thus, u + v is in Nul(A), and Nul(A) is closed under vector addition.
3. Finally, if c is any scalar, then:
• A(cu) = c(Au) = c(0) = 0 , which show that cu is in Nul(A).
Thus, Nul(A) is a subspace of R n . ■
► 위에 있는 예제 2 의 결과를 다시 한 번 살펴봅시다 .
After we decompose the vector giving the general solution into a linear combination of vectors where the weight are the free variables, we obtain the following:
Figure 2
Note that, every linear combination of u and v is an element of Nul A and vice versa. Thus {u, v} is a spanning set for Nul A .
Two points should be made about the solution of this Example 2 that apply to all problems of this type where Nul A contains nonzero vectors.
1. The spanning produce by the method shown in this Example 2 is automatically linearly independent because the free variables are the weights on the spanning vectors. For instance, look at the 2 nd and 3th entries in the solution vector in Figure 2, and note that x 2 u + x 4 u can be 0 only if the weights x 2 and x 4 are all zero.
1. When Nul A contains nonzero vectors, the number of vectors in the spanning set for Nul A equals the number of free variables in the equation Ax = 0 .
To consolidate the material, I will show an example of how you can easily determine whether a given vector x , for example, is in Nul A , using the given matrix from Example 2.
This means all four vectors x are in the null space of A .
Interesting fact #1:
► Right kernel(null space) vs Left kernel(null space)
The usual kernel(null space) is what we are calling the “right kernel”. The "left kernel" is the cokernel and can be computed as the kernel of the matrix's transpose .
Left null space:
The left null space, or cokernel, of a matrix A consists of all column vectors x such that x T A = 0 T , where T denotes the transpose of a matrix. The left null space of A is the same as the kernel of A T . The left null space of A is the orthogonal complement to the column space of A , and is dual to the cokernel of the associated linear transformation. The kernel, the row space, the column space, and the left null space of A are the four fundamental subspaces associated to the matrix A .
Sage example of right and left kernel:
Interesting fact #2:
► Sage library vs Python Sympy library
I'm not sure which library Sage uses, however, for example, the Numpy math library in Python uses the exact same method for finding the Null Space matrix that we usually use when solving manually.
Note that, the both results are correct (see the explanation above), but the method using the Sympy library seems to me more convenient. Below I have compared the results from Sage and Python Sympy.
Sage:
Python “Sympy”:
[참고]:
[1] https://en.wikipedia.org/wiki/Kernel_(linear_algebra)
[2] https://www.geeksforgeeks.org/null-space-and-nullity-of-a-matrix/
[정사영에 대한 질문과 답]. Finalized by 채희준,
질문 by 한수현, 답변 by 이상구
작성자 : 채희준(2016****00)작성일 : 7월 19일 오전 2:08
조회수 : 14
질문 by 한수현
답변 by 이상구
Finalized by 채희준
Q :
교재에서 정사영을 정의할 때, x, y를 R^3에서의 벡터로 정의하는데 R^n (3<n)에서의 두 벡터도 정사영이 가능한지 궁금합니다.
가능하다면 여기서 정의할 때 R^3에서의 벡터로 설명을 한 이유가 궁금하고, 불가능하다면 불가능한 이유도 설명해주시면 감사하겠습니다.
A :
이상구(LEE SANGGU)7월 16일 오후 9:31
1. 물론 x, y를 R^n (3<n)에서의 두 벡터 로 정의 해도 정사영이 가능합니다.
2. R^3에서의 벡터로 설명을 한 이유는 3차원 유클리드 공간인 R^3 가 학생이 종이에서 시각적으로 확인 하기 쉬어서3차원 벡터 와 3차원 공간을 이용 한 것 입니다.3. 물론 가능합니다. 더 나아가 위의 내용은 임의의 벡터공간 의 벡터들 에도 그대로 적용됩니다. 즉 행렬공간 안의 벡터인 행렬들 사이에서도 projection 즉 정사영을 정의 할 수 있고, 벡터의 한 예인 행렬 사이의 코시-슈바르츠 부등식도 있답니다.벡터의 한 예인 연속함수 둘 사이의 코시-슈바르츠 부등식도 있답니다.그런데 지금은 인공지능에 필요한 수학을 배우는 것이니 ... R^n 안의 벡터들 에만 집중하고, 제시한 관련 문제들 부터 풀어서 공유 하시고 ...1장에서의 key idea 인 SVD 부터 이해하고 설명해 보셔요. 결론. 우리에게 불가능 이란 없습니다.
추가 답변 및 정리 :
정의. |
|
벡터 와
가
에 있고,
라 하자. 그러면 점
에서
에 내린 수선의 발을
라 할 때, 벡터
를
위로의
의 정사영 (projection of
onto
)이라 하고
=
로 나타낸다. 이때 벡터
를
에 직교인
의 벡터성분 (vector component)이라 한다. 따라서
는 두 벡터의 합
로 나타내진다.
▪ 가
에 평행이므로,
이다. 그리고
는
에 직교(orthogonal)이므로,
.
따라서 이고
. ■
정리. |
정사영 |
의 벡터
,
에 대하여 다음이 성립한다.
여기서
. ■
제가 생각하기에는 여기서 중요한 것은 projection을 벡터의 내적 또는 내적&노름으로 표현 가능하다는 것이라 생각합니다. 내적과 노름은 n>3인 R^n 차원에서도 가능하므로 projection 또한 n>3인 R^n 차원에서 가능합니다.
※참고
교수님이 임의의 벡터공간에 대하여 이야기 하셔서 간단히 설명하자면,
▪벡터공간 :
임의의 집합 에 두 연산, 덧셈(vector addition,
)과 스칼라 배(scalar multiplication,
) 가 정의되고, 2개의 기본성질 (두 연산에 대하여 닫혀있다-closed )과 8개의 연산 성질을 만족하면 ‘
가 벡터공간(vector space))을 이룬다’ 고 한다. 예,
,
,
, 행렬공간 등
8개의 연산 성질 |
|
집합의 원소 (1) (2) (3) (4) (5) (6) (7) (8) |
위와 같은 벡터공간이 되기 위한 조건을 모두 만족하는 집합이 있다면 그 집합의 원소들을 벡터라고 부를 수 있습니다.
[Act07] [Final OK by TA and SGLee] Q by 이승재, Finalized by 천가영, 정사영에 대하여, 답변 by 이상구 교수님, 느낀점 : 벡터를 이해하기 위해서는 수학적 상상력이 필요하다는 생각이 들었습니다. (Act 05와 동일합니다.)
[Act08] [Final OK by TA and SGLee] Finalized by 이승재,김범준 and SGLee Q. [1주차] 강의 내용 복습 요약 & 실습 & 주요질의by 이승재[HW-1주차] 이승재학우분의 질문에 대한 답변+3번질문에대한 자세한 답변을 구합니다.-답변자: 김범준, 수정보완 답변자:SGLee (Act 03과 동일합니다.)
[Act09] (정리1) [Final OK by SGLee] Q, A & Finalized by 이승재, 박상협, 박정호, 김정한, SGLee [HW] 벡터의 직교, Gram Schmidt 정규직교화 과정
[Final OK by SGLee] Q, A & Finalized by 이승재, 박상협, 박정호, 김정한, SGLee [HW] 벡터의 직교, Gram Schmidt 정규직교화 과정
Question. (By 박상협)
1. 정사영의 정의에서, y-p가 x에 직교하므로 (x) (y-p) = 0 이라고 하는데 이 부분이 왜 그런지 잘 이해되지 않습니다.
<--1. 그림에서 보듯이 w = y-p 를 (Projection of y onto x 인) 벡터 p 와 직교가 되도록 잡았으니 ... p 와 w 그 둘의 내적을 구하면 당연히 영이 되는 것이랍니다. http://matrix.skku.ac.kr/2018-album/LA-Sec-7-7-lab.html 그렇게 직교 orthogonal 가 되도록 w 를 정의한 것입니다.
2. 두 벡터가 서로 직교할때 벡터의 내적이 0이 되는 이유가 궁금합니다. <--- 박정호 학우분 말씀 처럼 두 벡터 각각의 크기에 두 벡터가 이루는 각도의 cos값을 곱한 스칼라 값으로 나타내 줄 수 있기 떄문입니다. 즉 cos(90degree)=0이고 직교할 때의 내적의 결과 값은 0임을 알 수 있습니다.
(선형대수학이 처음이라 기초가 많이 미흡합니다. 도와주시면 감사하겠습니다!)
Answer by SGLee.
1. 그림에서 보듯이 w = y-p 를 (Projection of y onto x 인) 벡터 p 와 직교가 되도록 잡았으니 ... p 와 w 그 둘의 내적을 구하면 당연히 영이 되는 것이랍니다. http://matrix.skku.ac.kr/2018-album/LA-Sec-7-7-lab.html 그렇게 직교 orthogonal 가 되도록 w 를 정의한 것입니다.
2. 이 개념이 2차원에서, 3차원으로 , 그리고 4차원으로 그대로 확장이 되어 G-S 정규 직교화법이 만들어 지는 것이랍니다.
http://matrix.skku.ac.kr/2012-album/Gram-Schmidt.html
3. 관련 동영상은 아래 웹사이트를 참조하세요.
(Korean) https://youtu.be/EBCi1nR7EuE (English) https://youtu.be/Px6Gaks9fXQ
[Final OK by SGLee] Q, A & Finalized by 이승재, 박상협, 박정호, 김정한, SGLee [HW] 벡터의 직교, Gram Schmidt 정규직교화 과정
Answer by 박정호
내적을 정의할 때 벡터의 각 성분끼리의 곱의 합으로도 표현할 수 있지만 a*b*cos@로도 표현할 수 있습니다. a, b는 벡터의 크기니까 0이 아니므로 내적이 0이라면 코사인 값이 0인 것이고 코사인을 0으로 만들어주는 각이 90도이기 때문에 수직이라고 볼 수 있습니다. 2차원, 3차원에서는 수식으로나 그림으로 증명할 수 있고 그 이상의 차원에서도 내적을 같은 식으로 정의할 수 있기 때문에 내적이 0이다라는 것은 직교를 의미합니다.
Answer by 김정한
내적을 표현할 때는 x 보다 ⋅(dot 기호)를 사용하는게 바람직해 보입니다. w를 y에서 x방향으로의 성분(p)을 제외한 부분으로 생각하고 p는 x를 스칼라배한 것이므로 둘의 내적은 0입니다[직교].
이러한 직교 상황에 벡터의 내적이 0인 이유는 위에 박정호 학우분 말씀 처럼 두 벡터 각각의 크기에 두 벡터가 이루는 각도의 cos값을 곱한 스칼라 값으로 나타내 줄 수 있기 떄문입니다. 즉 cos(90degree)=0이고 직교할 때의 내적의 결과 값은 0임을 알 수 있습니다.
Comment by 이승재
- 박상협 학우님께서 질의 해 주신 부분은 제가 정사영이라는 개념을 처음 접하였을때 당시 어려움을 겪었던 부분 중 하나 입니다.
답변 해 주신 분들이 잘 설명해 주셔서 이해가 한층 더 되었던 것 같습니다.
(부족한 부분은 개인적으로 찾아 보아 정사영에 대한 이해도를 높일 수 있도록 하겠습니다.)
1. [Final OK by SGLee] [수정본] 추가답변 및 Re-Finalized by 유가이 올렉산드르, Finalized by 김범준 [1주차HW-질문] 일차독립
[1주차HW-질문]일차독립
질문by김범준
답변by이상구교수님
Finalized OK by김범준and SGLee
추가답변및Re-Finalized by유가이올렉산드르
1.정사각행렬이가역행렬이면열들은일차독립입니다.<---OK
2.그이유는가역행렬과det(a)≠0은서로필요충분조건관계에있는데,이는행렬식을이용한일차독립판정법또한det(a)≠0과일차독립은필요충분관계에있기때문입니다.<---OK
3.이와마찬가지로정사각행렬이비가역행렬이면열들이일차종속임또한알수있습니다.<---OK
Q 1.그렇다면,일차독립을구할때는반드시정사각행렬을만들어구하는방법을써야하는건가요?
<---Q1에대한답.일차독립개념은...아래 <일차독립정의>에서보듯이,
정사각행렬의열(column)뿐아니라...벡터공간안의일반적인벡터들의집합에적용되는개념입니다.
http://matrix.skku.ac.kr/knou-knowls/CLA-Week-4.html
Q 2.아니면 주어진벡터들이 일차독립인지 아닌지 판별할 때, 정사각행렬을 만들지않고도 판별하는 방법이 있나요?
<---Q2에대한답.물론이지요,일차독립의정의를다시읽어보시면바로이해되실것입니다.
[정의대로일차결합을만들어m by n행렬A에대하여,동차선형연립방정식Ax = 0의해가zero벡터뿐임을보이면됩니다.]
Q 3.추가질문
이제벡터값이주어지면일차독립인지여부를확인하는데는문제가없습니다.하지만,온라인교재를찾아보아도sage를통해A.ncols() == len(A.pivots())같이행렬을이용한풀이방식밖에찾지못하였습니다. 1차원벡터가주어졌을때는일차독립인지종속인지구별할필요가없는것인가요?
<----Q3에대한답.일차독립의정의를보시면이해할내용인데,
일차독립정의2.
m by n행렬A에대하여Ax = 0이x=0을유일한해로갖는다면A의n개의column vector들은일차독립이다.
이경우직사각형행렬A의column vector들은일차독립이다.
따라서주어진벡터들을column vector들로하는행렬A를만들고,
Ax = 0이x=0을유일한해로갖는것을보이면,column vector들이일차독립인것을보이는것이고,영아닌다른해를가지면일차종속이되는것입니다.
Comment :모두 이해하였습니다^^감사합니다^^
Q1.추가답변 및 예제:
아래정리(Theorem)를예로봅시다.(편리성을위해정리1라고합시다.)
Characterization of Linear Dependent Sets:
An indexed set, let’s call itSfor example,S = {v1, … , vp}of two or more vectors is linearly dependent(일차종속)ó(if and only if) at least one of the vectors inSis a linear combination(선형조합) of the others. In fact, ifSis linearly dependent andv1≠0, then somevj(withj > 1) is a linear combination of the preceding vectors(선행벡터/이전벡터),v1, … ,vj-1.
주의:1)이정리는어떤 집합 안에일차종속인 벡터가 존재한다고, 그집합 안의모든벡터들이다른벡터들의1차결합이라는 의미는 아닙니다. (일부는 일차독립일 수 있으며, 이 말은 그 집합 안의 어떤 (일차종속인) 벡터는 다른 벡터들의 일차결합으로 표현이 가능하다는 의미입니다.)
2)어떤 집합 안에일차종속인 벡터가 존재한다고 해도 ,일부는 일차독립일 수 있습니다.)
예제(정사각행렬을만들지않고, 일차독립을 보이는 예의풀이):
Problem Statement:
Letu= [3 1 0]Tandv= [1 6 0]T(더나은시각화를위해전치행렬 (Transpose)을사용함).
평행이 아닌 두 벡터u와v 가span 하는집합span{u, v}을설명하고
{u, v, w}가일차종속 집합인경우에,벡터w가스팬span{u, v}에 있는이유를설명하십시오.
Solution
• 벡터u와v는어느벡터도다른것의배수가아니므로일차독립이므로R3상에서 하나의평면을 생성(span)합니다.
• 스팬{u, v} 를x1x2-평면 이라고 합시다.(withx3= 0).
• w가u와v의1차결합인경우,위의정리에의해{u, v, w}는1차 종속입니다.
• 반대로,{u, v, w}가1차 종속되어있다고가정합시다.
• 위정리에따르면,{u, v, w}안의 어떤벡터는다른벡터 들의1차 결합입니다(since,u ≠ 0).
• v는u의배수가아니므로이벡터는w여야 합니다.
• ð따라서w는스팬{u, v} 안에있습니다.아래그림참조하십시오.
•
• 이것은위에서해집합(솔루션)의대략적인시각화입니다.이덕분에1차 종속벡터와1차독립벡터의차이점에대한설명이더명확해지기를바랍니다.
• ►위예제는1차(일차)독립적인u및v를사용하여R3에모든집합{u, v, w}을일반화합니다.
• ►세트{u, v, w}는w가u와v에의해스팬 된평면에있는경우에만(if and only ifó)1차 종속입니다.
•
Q2.추가답변및예제(정사각행렬을만들지않고도판별하는방법)
• 또하나의정리(Theorem)를예로봅시다. (편리성을위해정리2라고합시다.)
• If a set contains more vectors than there are entries in each vector, then the set is linearly dependent(일차종속). That is, any set{v1, … ,vp}inRnis linearly dependent ifp > n.여기서p는세트의벡터수이(number of vectors)고n은세트의항목수(number of entries in the vector)입니다.
• 여기서는예제가아니라이해하기쉽도록이정리(theorem)에대한증거(proof)를제공합니다.
• Proof
• A = [v1∙∙∙ vp]라고합시다.
• 그런다음A는«n x p» (정사각형이아닌행렬)이며방정식Ax = 0은p개의미지수(unknowns)로n개의방정식시스템(system of equations)에해당합니다.
• p > n인경우방정식보다많은변수가있으므로자유변수(free variable)가있어야합니다.
• 따라서Ax = 0은사소하지않은솔루션(non-trivial solution)을가지며A의열은선형으로종속(일차종속)됩니다. ■
• 위의증거를시각화하려면아래그림을참조하십시오.
•
• 위의그림에서A = n x p첨가증강행렬(augmented matrix)입니다.
주의:이정리는집합의벡터수(number of vectors)가각벡터의항목수(number of entries in each vector)를초과하지않는경우에대해서는아무것도말하지않습니다.
간단한예제:
아래3개의벡터를봅시다.이3개의벡터가일차종속인가?
벡터[2 1]T,[4 -1]T,[-2 2]T은세트에3개의벡터가있고각벡터에2개의성분(엔트리,entries)만있기때문에위의«정리2(Theorem 2)»에의해일차종속이다.
►그러나벡터중어느것도다른벡터중하나의배수가아님에유의하십시오(위그림참조).
마지막으로, 또하나의정리(Theorem)를 예로봅시다. (편리성을위해정리3라고합시다.)
Ifaset,let'scallitSforexample,S= {v1, … ,vp}inRncontainsthezerovector,thenthesetislinearlydependent(일차종속).
여기서는 예제가아니라이해하기쉽도록이정리(theorem)에대한 아주간단한 증거(proof)를 제공합니다.
Proof
벡터의번호를다시매기(renumbering the vectors)면v1= 0이라고가정할수있습니다.그러면방정식1v1+ 0v2+ ∙∙∙ + 0vp= 0은집합 (세트)S가선형적으로종속(일차종속)임을나타냅니다. ■
Q3.추가답변및예제 저는 이상구교수님의 매우 자세한 답변을 간략하게 요약하고이해가더쉽게하기위해서아주 간단한 예를 제시하겠습니다.
이제알다시피행렬A의열은방정식Ax = 0 가 해로trivial solution인 영벡터 만갖는경우에만(if and only ifó) 일차독립입니다.
예제:
이시점에서3개의기본변수가있고자유변수가(free variables)없는것이분명합니다.따라서방정식Ax = 0에는trivial solution만있으며,1차독립의 정의에 의하여A의열(columns)은일차독립입니다.
Comment by유가이올렉산드르:학생좋은질문과이상구교수님의자세한답에감사합니다.선형대수의일반적인정리(theorem)들을사용하고,다양한증거(proofs)와예제를제공했으며,정사각행렬을사용하거나사용하지않(직관적으로)고행렬의독립성을판별하는방법을가능한자세하고쉽게설명하려고노력했습니다.위내용을도움이되길바랍니다.
김범준(2017****99)7월 13일 오후 7:42
그림을 통해 설명해주셔서 한층 심화된 이해가 가능한 것 같습니다. 감사합니다.
2. [Final OK by TA and SGLee] Finalized by 이승재,김범준 and SGLee Q. [1주차] 강의 내용 복습 요약 & 실습 & 주요질의by 이승재[HW-1주차] 이승재학우분의 질문에 대한 답변+3번질문에대한 자세한 답변을 구합니다.-답변자: 김범준, 수정보완 답변자:SGLee
(1). 벡터란 교재 상 속도,위치 이동 등 숫자로 표현되는 물리량에“방향”까지 포함하는 것이라고 기술되어 있는 것으로 파악했습니다.후술되어 있는 내용에는 단순히 숫자의 나열로 제시되어져 있는데, (X = (-1, 2, 4, -10)와 같이 기술되어 있음)이를 어떻게 해석해야 하는지 질의 드립니다. (단순히 어느 한 점의 위치를 표현한 고정된 좌표인지 아니면 운동하는 순간의 수치를 표현한 유동적인 물리량인지 궁금합니다.)
A:
특수한 경우에서의 설명:
즉 여기서 방향과(우상향), 크기(선의 길이)를 벡터라고 보시면 됩니다. 오른쪽은 일반적인 직선으로 방향성이 없다는 점에서 벡터와의 차이가 있습니다.
(2).스칼라는 백터와 달리‘방향’이 없는 물리량으로 이해했습니다.이때,스칼라 역시 실수로 표현되는데,그럼 백터X = (3)와 스칼라k = 3의 차이는 무엇으로 구분되어 지는지 궁금합니다.
A:이 경우 벡터는 벡터공간 R^n(n=1 인경우) 의 원소이고, 스칼라는 (underlying Field) 체 F=R 의 원소인 것이 다릅니다.
참고http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-14.html
스칼라 3+2는 5지만 벡터는 그 방향성에 따라 5가 아닌 다른 값이 나올 수 있습니다. 만약 위의 시점이 (0,0)이고 종점이(2,3)인 X=(2,3)인 벡터를 역방향으로 시점이(2.3)이고 종점이 (0,0)인 벡터를 더한다면 합은 0이 되는 것이 그 예시입니다.
3)질의1-(1)에 연장선 상에서,만일 백터가 점들의 좌표들을 나열한 것이라고 이해될 수 있다면,원점(기준점)이 백터에 포함이 되어 있을 수 있는지(가능성)여부를 알고자 합니다. 벡터를 편하게 비교하기 위해 고교수학과정에서는 (0,0)을 기준점으로 비교하고는 있습니다. 이 부분이 실제로 수학적으로 유효한 것인지 저또한 궁금합니다.
이상구(LEE SANGGU)7월 15일 오후 7:24
혹시 읽으시는 분께서 3번질문에 대해 자세히 답변해주실 수 있으시면 감사합니다.
(3) 질의 에 대한 답변Answer.
1. 먼저 벡터공간 R^n 의 벡터는 점들의 좌표를 n-tuple 로 나열한 것이라고 이해될 수 있습니다. 다른 벡터 공간에서는 그렇게 할 수 없을 수도 있습니다.2. 벡터공간 R^n 안에는 원점 (origin, zero vector. 기준점) 인 zero 벡터 가 항상 포함됩니다.3. 벡터공간 R^2 안의 벡터를 편하게 비교하기 위해 고교수학 과정에서는 (0,0)을 원점 (origin, zero vector. 기준점) 으로 사용합니다.3-1 (m by n 행렬들의 집합인) 벡터공간 M_{m by n } 안의 벡터 들 중에서는 영행렬이 (origin) zero vector 입니다.4. 위와 같이 1, 2, 3, 으로 쓰면 수학적으로 유효합니다.그러나 벡터공간 (집합) 안의 원소들이 모두 벡터 이므로 벡터공간 R^n 이 아닌 다른 벡터 공간에서는 학생이 한 말이 모두 부정확한 말이 될 수 있습니다.참고 : http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-14.html
김범준(2017****99)7월 15일 오후 8:10
모두 이해 되었습니다. 감사합니다.
추가 COMMENT: 이 과정을 통해 제가 잘 모르는 부분인데도 인지하지 못하고 있는 부분도 답변하면서 교수님과 학우분들이 수정해주시는 과정에서도 배워갈 수 있다고 느꼈습니다.
3. [Final OK by TA] Finalized by 천가영, 원점을 지나는 평면에 관한 질문, 답변 by 김범준, 이상구 교수님
원점을 지나는 평면에 관한 질문 질문 by 천가영
답변 by 이상구 교수님, 김범준
Finalized by 천가영
Q. https://www.youtube.com/watch?v=or9c97J3Uk0&feature=youtu.be
기저에 관한 교수님의 유튜브 강의를 듣던 중 기저의 예시로 평면이 나왔습니다.
평면 V에서 서로의 상수배가 아닌 영 아닌 두 벡터가 V의 기저를 이룬다는 점은 이해가 된 것 같습니다.
제가 이해가 되지 않은 부분은 바로 예시 속 그림입니다.
평면 V가 R^n 상의 원점을 지나는 평면이라고 하였는데, 그림 상으로는 원점을 지나는 평면인 것 같지 않아서 더 자세한 설명이 필요합니다.
제가 이해한 V를 그림으로 표현해 보았습니다.
A.
김범준(2017****99)7월 20일 오후 4:54
제가보기에는 X,Y,Z가 각 0인 점을 지나고 있어서 원점을 지나는 평면이라고 하신것 같습니다.
이상구(LEE SANGGU)7월 20일 오후 5:00
R^3 에서는 쉬운데 ... R^n 벡터공간에서는 눈으로 쉽게 보게 그리기가 어렵답니다.아무튼 내가 그린 그림은 적어도 원점이 평면상에 있는데 ... 천가영씨가 그린 그림에서는 원점이 평면 밖에 있어서 ... 적어도 내 설명과 그림이 틀리지는 않았답니다.
느낀점 :
예시 속의 그림이 당연히 3차원 공간이라고 생각했었는데, 3차원 공간이 아니라고 생각하고 다시 그려보니 이해가 된 것 같습니다. 이렇게 그림을 그려도 되는지 모르겠지만 우선 이해를 돕기 위해 한 번 그려보았습니다. 김범준 학우 분의 답변도 많은 도움이 되었습니다. 답변해주셔서 감사합니다.
그리고 사실 쉽게 표현하기도, 그려내기도 어려운 개념들을 다루는 것이 수학이라는 생각이 들었습니다. 그래서 어떤 면에서 가장 정확한 언어인 것 같다는 생각도 들었습니다.
4.[Final OK by TA] Finalized by 한수현, 질문 by 김다은(1강 질문 -2), 답변 by 김범준, 전재현
답변 내용 요약 정리 :
1. 이는 질문이 아니니 넘어가겠습니다.
2.
벡터에 스칼라배를 할 경우 방향은 그대로이고 크기만 바뀌게 됩니다.
따라서 벡터 x와 p는 서로 평행하기 때문에 p를 x에 스칼라배를 한 형태로 표현할 수 있는 것입니다.
이 스칼라를 t라고 표현을 해준 것이고, t의 값은 상황에 따라 달라진다는 점을 알고 계시면 좋을 것 같습니다.
3.
n의 값은 공간의 차원 값입니다.
n은 어떠한 자연수든 될 수 있는데, 이미 주어진 벡터공간이 몇 차원인지(R^n에서 n이 무엇인지) 아는 방법은 그 공간의 벡터의 특징을 보는 것입니다.
해당 공간에 속해있는 벡터의 성분의 개수를 통해 n의 값이 무엇인지 판단할 수 있습니다.
벡터공간 R^n에 속해있는 벡터는 성분을 n개 가지고 있으니 이것으로 판단하면 될 것입니다.
다른 분들이 답변해주신 내용을 제 방식대로 요약 정리 해보았습니다.
5.[Final OK by SGLee] [Final] 대각화 관련 질문 Finalized by 박은아, 질문 by 김범준, 댓글 by 이상구교수님, 박은아, 장환승
[Final OK by SGLee] [Final] 대각화 관련 질문 Finalized by 박은아, 질문 by 김범준, 댓글 by 이상구교수님, 박은아, 장환승
[HW 2주차 직교대각화 질문]
질문 by 김범준
댓글 by 이상구교수님, 박은아, 장환승
Finalized by 박은아
[질문]
저는 1주차 실습에서 같은크기의 정사각행렬의 곱에서는 교환법칙이 성림한다고 예상하였습니다.
그렇다면 대각화 가능한 행렬에서는 단위행렬과 행렬A의 곱을 구함으로서 대각선행렬을 구할 수 있을것이라 생각하였는데 아니였습니다.
행렬에서는 교환법칙이 성립하지 않는다고 생각하여야 하는지 궁금합니다.
[답변]
이상구(LEE SANGGU)7월 26일 오전 9:23
A 는 Row vectors 로 하고 P 는 Column vectors 로 하였으니 ... 위와 같은 결과가 나온 것입니다.어디를 바꾸면 될지 이전의 예를 자세히 보고 ... 따라서 해 본 후 다시 문의 하세요^^
[2주차] 고유값, 고유벡터 개념 정리 및 Sage 실습 by 안성진
작성자 : 안성진(2015****36)작성일 : 8월 16일 오후 11:34
고유값 (eigenvalue), 고유벡터 (eigenvector)
고유값은 아래 식을 만족하는 lambda를 의미한다. 고유벡터는 아래 식을 만족하는 x를 의미한다.
이 때 x는 영벡터가 아니며, A는 n차 정사각행렬이다.
즉, 행렬 A로 벡터 x를 변환 시킨 결과와 scalar인 lambda로 변환 시킨 결과가 같다는 의미이다.
고유공간 (eigenspace)
실습
Visualization
추가 자료 탐색을 통해 Eigenvector를 시각화 하여 공부해보았습니다. Eigenvector는 행렬 A에 의해 변환이 되어도 변환 전의 span에서 벗어나지 않고 scalar만큼 늘어나거나 줄어든다는 것을 시각적으로 볼 수 있었습니다.
출처: https://www.youtube.com/watch?v=PFDu9oVAE-g
2개의 댓글
이상구(LEE SANGGU)8월 17일 오전 6:19
R^2 나 R^3 에서는 맞는 설명 입니다.R^n 에서 는 C^n 에서는 고유벡터의기하적 의미에 대한 표현이 어떻게 되어야 할까요?
안성진(2015****36)8월 17일 오후 2:04
R^n 에서 고유벡터가 갖는 기하학적 의미의 표현은 일반적인 수식으로 가능할 것 같습니다.A * x = lambda * x (이 때 x 는 n차원의 벡터)
이상구(LEE SANGGU)7월 26일 오전 9:37
그리고 : http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-11.html 에 잇는 아래 내용을 쭉 따라서 해 보세!요A를 대각화하는 행렬 P를 구하는 과정
A=matrix([[0, 0, -2], [1, 2, 1], [1, 0, 3]]) |
print A.eigenvalues() # 고유값 계산 |
|
A.eigenvectors_right() |
# (고유값, [ 고유벡터 ], 중복도), ... |
x1=vector([1, -1/2, -1/2]) |
x2=vector([1, 0, -1]) |
x3=vector([0, 1, 0]) |
P=column_matrix([x1, x2, x3]) |
print "P=" |
print P |
|
print "det(P)=", P.det() |
print "D=" |
print P^-1*A*P # 대각화 가능하다면 고유값을 |
# 대각원소로 하는 대각행렬 생성됨 |
박은아(2016****73)7월 26일 오전 11:53
일반적으로 행렬의 연산에서 (정사각행렬을 포함하여)곱셈에서 결합법칙 (AB)C = A(BC) 은 항상 성립하지만교환법칙 AB=BA 은 일반적으로는 성립하지 않습니다. (AB≠BA)<--- 행렬의 곱 연산에서는 앞 행렬의 행과 뒤 행렬의 열을 대응하여 연산하기 때문입니다.이와 같이 다항식과 행렬의 연산에서 다른 점이 몇 개 존재하는데, 다음은 그 예시입니다.다항식: ab=0 이면 항상 a=0 or b=0 이다. 그러나행렬곱 에서는 : AB=0이어도 A=0 or B=0 이 항상 성립하지는 않는다.다항식: a가 0이 아닐 때, ab=ac이면 b=c이다.행렬 : A가 영 행렬이 아닐 때, AB=AC 이어도 B=C 이 항상 성립하지는 않는다.
김범준(2017****99)7월 26일 오후 2:16
두 분 답변 모두 감사합니다.
장환승(2016****69)7월 26일 오후 4:08
행렬에서는 제가 알기론 교환법칙에 일반적으로 성립하지 않는다고 알고 있습니다. ( 닫혀있다 는 것은 다른 의미고 ... )
[Comment]
김범준 학우님의 대각화 관련 질문을 통해 다음과 같이 대각화에 대한 개념과 행렬의 연산법칙에 대해 상기할 수 있었습니다.
대각화 가능한 행렬의 조건 - 어떤 행렬의 교유값들이 서로 다른 값을 가지면 독립인 고유벡터를 가지며 대각화 가능하다.
(증명 -https://www.math.wisc.edu/~ellenber/Math204Lects/Week10.pdf)
행렬의 연산법칙 - 곱셈에서 결합법칙은 항상 성립하지만, 교환법칙은 일반적으로 성립하지 않는다.
이와 더불어 교수님께서 작성해주신A를 대각화하는 행렬 P를 구하는 과정코드를 활용해 대각화 실습을 해보았고, 개념을 견고히 할 수 있었습니다.
추가 Comment- 저의 질문을 통해 다른분들의 수학적 이해에 도움이 될 수 있어서 기쁩니다.
[Final OK by SGLee]
Q by 이상현, Finalized by 천가영, (복소수 및 무리수 포함하는 행렬의) 역행렬에 대한 질문, 답변 by 이상구 교수님, 댓글 by 권서영, 채희준, 박정호 작성자 : 천가영(2020****17)작성일 : 7월 25일 오후 9:20
(복소수 및 무리수 포함하는 행렬의) 역행렬에 대한 질문과 답^^
질문 by 이상현
답변 by 이상구 교수님
댓글 by 권서영, 채희준, 박정호
Finalized by 천가영
Q.
주어진 행렬 K에 단위행렬을 첨가한뒤 RREF로 바꿔 역행렬을 만드는 도중 발견했습니다.
행렬 K는 2x2의 정사각행렬이고 [a , b], [c , d] 의 형태를 띈다고 가정하면
K의 역행렬의 1행1열에 해당하는 성분은 d/(ad-bc) 이어야 합니다.
그러나, RREF를 이용하는 방법은 1행1열에 해당하는 성분이 {(1+abc)/(a^2)}/(ad-bc)가 나옵니다.
혹시 모든 2x2 행렬이 (1+abc)/(a^2) = d 를 만족하나요? 제 계산에 오류가 있나요?
Answer
그렇습니다. 손 계산에는 오류가 없습니다. 그러나 컴퓨터 ... 인공지능에게 ... 명령을 줄 때 ... 정수 계산 이외는 하지 말라고 하고 ... 복소수 i 를 주고 ... 무리수 e 를 주었으니 ... 인공지능은 시킨대로 했을 뿐입니다. 그 답이 맞는지 틀린지 인공지능은 모릅니다. 그리고 변수 x에 대하여도 어떤 의미도 주지 않고 사용하였습니다. .. 이런 경우 코드를 짠 사람만이 자신이 무엇을 잘 못 시켰는지 ... 파악할 수 있답니다. 스스로 ... 고쳐서 같은 실수를 하지 않아야 합니다. 이런 경우 컴퓨터와 대화하는 코딩의 기본 지식이 필요합니다. 컴퓨터로 구한 값은 .., 항상 그 전에 이런 문제를 이런 코드로 내 컴퓨터가 구해준 답이 항상 정답이 되는지 미리 확인해 보아야 합니다. A = matrix(RR, [ [1, 2], [5, 8] ] ) # 실수 상에서 행렬 계산 하라고 하는 경우 A = matrix(RDF, [ [1, 2], [5, 8] ] ) # 실수체 상에서 행렬 계산하고 하는 경우의 행렬 정의 등으로 해 보세요^^ 이 경우도 복소수 i 가 사용되면 원하는 답은 안나옵니다. 복소수 계산을 하기 위해서는 기본 코드 설정이 실수 부분과 복소수 부분으로 나누어서 다른 구조로 설정되어 있으면 그것을 작동하려면 ... 코딩을 제대로 배워야 합니다. 이상현 군이 사용한 코드는 정수 행렬의 경우 정답을 주는 코드입니다. 다른 경우는 이번 경우 무리수 e 를 사용한 듯한데 이 경우 무리수 계산을 할 수 있도록 underlying filed 를 그에 맞추어 실수 RR or RDF 로 바꾸어 주어야 하고 ... 그에 보태어 floating error 가 얻고자 하는 답에 영향을 주는지 미리 확인하여 ... 코드를 손보는 노력이 꼭 필요합니다. https://docs.python.org/ko/3/tutorial/floatingpoint.html 15. 부동 소수점 산술: 문제점 및 한계 부동 소수점 숫자는 컴퓨터 하드웨어에서 밑(base)이 2인(이진) 소수로 표현됩니다. 예를 들어, 소수 0.125 는 1/10 + 2/100 + 5/1000의 값을 가지며, 같은 방식으로 이진 소수 0.001 는 값 0/2 + 0/4 + 1/8을 가집니다. 이 두 소수는 같은 값을 가지며, 유일한 차이점은 첫 번째가 밑이 10인 분수 표기법으로 작성되었고 두 번째는 밑이 2라는 것입니다. 불행히도, 대부분의 십진 소수는 정확하게 이진 소수로 표현될 수 없습니다. 결과적으로, 일반적으로 입력하는 십진 부동 소수점 숫자가 실제로 기계에 저장될 때는 이진 부동 소수점 수로 근사 될 뿐입니다. 이 문제는 먼저 밑 10에서 따져보는 것이 이해하기 쉽습니다. 분수 1/3을 생각해봅시다. 이 값을 십진 소수로 근사할 수 있습니다: 0.3 또는, 더 정확하게, 0.33 또는, 더 정확하게, 0.333 등등. 아무리 많은 자릿수를 적어도 결과가 정확하게 1/3이 될 수 없지만, 점점 더 1/3에 가까운 근사치가 됩니다. 같은 방식으로, 아무리 많은 자릿수의 숫자를 사용해도, 십진수 0.1은 이진 소수로 정확하게 표현될 수 없습니다. 이진법에서, 1/10은 무한히 반복되는 소수입니다 0.0001100110011001100110011001100110011001100110011... 유한 한 비트 수에서 멈추면, 근삿값을 얻게 됩니다. 오늘날 대부분 기계에서, float는 이진 분수로 근사 되는 데, 최상위 비트로부터 시작하는 53비트를 분자로 사용하고, 2의 거듭제곱 수를 분모로 사용합니다. 1/10의 경우, 이진 분수는 3602879701896397 / 2 ** 55 인데, 실제 값 1/10과 거의 같지만 정확히 같지는 않습니다. 많은 사용자는 값이 표시되는 방식 때문에 근사를 인식하지 못합니다. 파이썬은 기계에 저장된 이진 근삿값의 진짜 십진 값에 대한 십진 근삿값을 인쇄할 뿐입니다. 대부분 기계에서, 만약 파이썬이 0.1로 저장된 이진 근삿값의 진짜 십진 값을 출력한다면 다음과 같이 표시해야 합니다 >>>>>>0.1 0.1000000000000000055511151231257827021181583404541015625 이것은 대부분 사람이 유용하다고 생각하는 것보다 많은 숫자이므로, 파이썬은 반올림된 값을 대신 표시하여 숫자를 다룰만하게 만듭니다 >>>>>>1 / 10 0.1 인쇄된 결과가 정확히 1/10인 것처럼 보여도, 실제 저장된 값은 가장 가까운 표현 가능한 이진 소수임을 기억하세요. 흥미롭게도, 가장 가까운 근사 이진 소수를 공유하는 여러 다른 십진수가 있습니다. 예를 들어, 0.1 과 0.10000000000000001 및 0.1000000000000000055511151231257827021181583404541015625 는 모두 3602879701896397 / 2 ** 55 로 근사 됩니다. 이 십진 값들이 모두 같은 근삿값을 공유하기 때문에 eval(repr(x)) == x 불변을 그대로 유지하면서 그중 하나를 표시할 수 있습니다. 역사적으로, 파이썬 프롬프트와 내장 repr() 함수는 유효 숫자 17개의 숫자인 0.10000000000000001 을 선택합니다. 파이썬 3.1부터, 이제 파이썬(대부분 시스템에서)이 가장 짧은 것을 선택할 수 있으며, 단순히 0.1 만 표시합니다. 이것이 이진 부동 소수점의 본질임에 주목하세요: 파이썬의 버그는 아니며, 여러분의 코드에 있는 버그도 아닙니다. 하드웨어의 부동 소수점 산술을 지원하는 모든 언어에서 같은 종류의 것을 볼 수 있습니다 (일부 언어는 기본적으로 혹은 모든 출력 모드에서 차이를 표시하지 않을 수 있지만). 좀 더 만족스러운 결과를 얻으려면, 문자열 포매팅을 사용하여 제한된 수의 유효 숫자를 생성할 수 있습니다:>>>>>> format(math.pi, '.12g') # give 12 significant digits '3.14159265359'>>> format(math.pi, '.2f') # give 2 digits after the point '3.14'>>> repr(math.pi) '3.141592653589793' 이것이, 진정한 의미에서, 환영임을 깨닫는 것이 중요합니다: 여러분은 단순히 진짜 기곗값의 표시 를 반올림하고 있습니다. 하나의 환상은 다른 환상을 낳을 수 있습니다. 예를 들어, 0.1은 정확히 1/10이 아니므로, 0.1의 세 개를 합한 것 역시 정확히 0.3이 아닙니다:>>>>>> .1 + .1 + .1 == .3 False 또한, 0.1은 1/10의 정확한 값에 더 가까워질 수 없고, 0.3도 3/10의 정확한 값에 더 가까워질 수 없으므로, round() 함수로 미리 반올림하는 것은 도움이 되지 않습니다:>>>>>> round(.1, 1) + round(.1, 1) + round(.1, 1) == round(.3, 1) False 숫자를 의도한 정확한 값에 더 가깝게 만들 수는 없지만, round() 함수는 사후 반올림에 유용하여 부정확한 값을 가진 결과를 서로 비교할 수 있게 합니다:>>>>>> round(.1 + .1 + .1, 10) == round(.3, 10) True 이진 부동 소수점 산술은 이처럼 많은 놀라움을 안겨줍니다. 《0.1》의 문제는 아래의 《표현 오류》 섹션에서 자세하게 설명합니다. *** 이런 것은 코딩 수업을 따로 들으면서 배우시기 바랍니다. 본 강의에서는 교과서에 있는 내용을 실습하는 기회를 제공하는 정도로 쭉 진도를 나가서 인공지능이 실제 구현되는 수학적 원리의 기초를 학습하도록 하는 것입니다. 모든 것을 컴퓨터 코딩으로 해결하려면 ... 위의 코딩 지식을 배워야 합니다. 그 필요를 느끼실 때 ... 코딩 수업을 따로 들으면서 배우시면 됩니다^^ 그 차이를 느끼도록 해 주는 것이 우리 강좌의 목표 중 하나인데 ... 이 군은 그 목표에는 도달했으니 아주 잘 했습니다. ^^.
https://www.wolframalpha.com/examples/mathematics/ 에서 한번 구해 보세요^^ inverse of {{x, i}, {e, 99}} https://www.wolframalpha.com/input/?i=inverse++of+%7B%7Bx%2C+i%7D%2C+%7Be%2C+99%7D%7D 여기서는 복소수나 무리수 를 인식하여 계산하도록 코딩을 속에 포함해 둔 것입니다. 그러나 그 코딩은 유료라 안 보여 줍니다.
Comment
채희준(2016****00)7월 19일 오후 3:21
질문과 답변을 읽으면서 짜여진 코드를 사용할 때는 그 코드의 전제되어 있는 조건들을 알아둘 필요가 있다는 생각이 들었습니다. 그리고 문자 변수가 포함된 행렬도 역행렬을 구해주는 등의 계산을 해줄 수 있을까 궁금했는데, 복소수나 무리수를 인식하여 계산하도록 하는 코드만으로도 쉽지 않은 것 같습니다. 부동 소수점 산술에 대한 답변도 매우 흥미로웠습니다. 파이썬을 이용해 계산을 하다가, 손으로 계산하면 2.0으로 떨어져야하는데 2.00001 비슷하게 나오는 등의 경험을 종종 했었습니다. 그때는 왜 이렇게 나오지? 하고 어리둥절 넘겼는데, 십진법과 이진법 사이의 변환이 이뤄지면서 생기는 문제였군요. 좋은 질문과 답변을 해주신 덕분에 새로운 지식을 얻을 수 있었습니다. 감사합니다.
6.[Final OK by TA] Finalized by 김범준, SG LEE Q.[HW-2주차] 런타임에러by 김범준
Finalized by 김범준, SG LEE Q.[HW-2주차] 런타임에러by 김범준
해당 코드에서 만약 대각화가 불가능한 행렬이라면, FALSE가 나오고 가능한 행렬이라면 TRUE가 나올것이라 예상했는데 런타임에러가 계속 나옵니다. 혹시 컴퓨터로 하는 계산의 한계 중 하나인가요?
이상구(LEE SANGGU)7월 26일 오전 9:20
고윳값이 유리수가 아닌데 ... 유리수 안에서 구하라고 유리수로 제한하는 명령어 QQ 를 주었으니 ... 에러가 나는 것입니다.이것 QQ 를 RR 이나 RDF 로 바꾸어서 해 보세요^^
이상구(LEE SANGGU)7월 26일 오전 9:37
그리고 : http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-11.html 에 잇는 아래 내용을 쭉 따라서 해 보세요
A=matrix([[0, 0, -2], [1, 2, 1], [1, 0, 3]]) |
print A.eigenvalues() # 고유값 계산 |
A.eigenvectors_right() |
# (고유값, [ 고유벡터 ], 중복도), ... |
x1=vector([1, -1/2, -1/2]) |
x2=vector([1, 0, -1]) |
x3=vector([0, 1, 0]) |
P=column_matrix([x1, x2, x3]) |
print "P=" |
print P |
|
print "det(P)=", P.det() |
print "D=" |
print P^-1*A*P # 대각화 가능하다면 고유값을 |
# 대각원소로 하는 대각행렬 생성됨 |
김범준(2017****99)7월 26일 오전 10:18
네 감사합니다
추가 comment- 컴퓨터로 하는 계산에서의 에러의 유형 중 수의 범위지정과 관련한 오류에 대해 배울 수 있었습니다.
7.[Final OK by TA] [Final] [2주차] 강의 내용 요약 (선형변환) + 질문 <--- 답 : 선형변환 T 가 단사 일 필요충분 조건 증명, Finalized by 천가영, 답변 by 이상구 교수님, 댓글 by 김범준
질문 :선형변환을 n차원 공간에서의 함수로 생각을 하면, 단사함수는 일대일함수와, 전단사함수는 일대일 대응 함수와 연관지어 이해할 수 있었습니다.
그런데 단사함수의 필요충분조건인 kerT={0}은 왜 그런 것인지 잘 이해가 되지 않습니다.
이 벡터공간이고
가 선형변환일 때,
가 단사일 필요충분조건은
이다. 참고문헌 출처 :http://matrix.skku.ac.kr/math4ai/part1/
답:http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-8.html
Q2.R^n 에서 R^m 으로 보내는선형 변환에서 길이보존(isometry)가 가지는 메리트가 정확히 무엇인가요? 연산이나 변환 예측에 용이해서인가요?
답: 복잡한 치역에서 생각해야 할 거리/크기에 관한 함수 T(x) 에 대한 모든 연구를
이미 모두 알고 있는 간단한 정의역에서 해도 되는 엄청난 장점이 있습니다.
Q3.R^n 에서 R^m 으로 보내는선형 변환이 단사일 필요충분조건이 왜 저렇게 나오는지 조금 이해가 어렵습니다. 특히 T가 단사일 떄는 왜 ker T={0} 인가요?http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-8.html에 증명 있습니다.
|
[증명]
|
느낀점 :
앞서 학우분이 했던 질문을 읽어보지 않고 다시 질문하게 되어서 죄송했다.
앞으로는 미리 질문과 답들을 읽어보고 추가적으로 생기는 궁금증을 질문해야겠다고 생각했다.
김범준(2017****99)7월 26일 오후 6:39 저도 이 부분이 궁금하였습니다. 논리학적으로 따지면 선형변환일때 kerT={0}가 성립한다. 단사함수는 선형변환의 부분집합이다, 따라서 선형변환이라면, kerT={0}의 속성을 가진다. 하지만 그 역이 성립하는지를 알아야 필요충분조건이라 할 수 있는데 역의 성립을 어떻게 보일 수 있는지 잘 모르겠습니다.
이상구(LEE SANGGU)7월 26일 오후 6:48
답 : 선형변환 T 가 단사 일 필요충분 조건 증명 ... 아래 주었는데 한 번 더 답을 줍니다.
천가영(2020****17)7월 26일 오후 7:03 넵 감사합니다!!
추가 comment: 다른 학우들의 질문을 보면서 넘어갔던 부분에 대해 궁금증이 생겼습니다. 책에 있었지만, 제가 이를 잘 알고있지 못한점은, 제 공부가 부족했음을 알 수 있었습니다.
8.[Final OK by TA] FINALIZED BY 김범준, SG LEE Q.[HW-2주차-질문] 이차형식에 관하여BY김범준
일반적인 이차형식은행렬을 도입하여 행렬 곱의 형태인꼴로 표현할 수 있다.
또는
▪앞으로는 대칭행렬를 얻기 위하여
를 둘로 나누어, 다음과 같이 나타내도록 한다.
,
같은 방법으로
이와 같이를 대칭행렬로 택하는 이유는대칭행렬
는 항상 직교대각화 가능하기 때문이다.
Q. 여기서 일반적인 이차형식의 경우 A를대칭핼렬로 선택할 수 있고. 따라서 행렬 대각화가 가능합니다.대각행렬로 구성하면구할 수 있다는 점은 이해했습니다.
(혹시일반적이지 않은 즉의 꼴로 구할 수 있는지 없는지 판단할 수 있는 방법이 무엇인지 궁금합니다. )
이상구(LEE SANGGU)7월 26일 오후 6:53 일반적이지 않은 이차형식 이란 것은 없습니다. 모든 이차형식 은 x^T A x = f_{A} (x) 로 쓸 수 있으며, 항상 A 를 대칭행렬로 선택할 수 있고, 대칭행렬이므로 항상 대각화 가능하므로, 이차형식이면 ... 우리가 원하는 만큼 단순화 시켜서 이해하고 계산하여 이용할 수 있습니다.
이상구(LEE SANGGU)7월 26일 오후 6:53 일반적이지 않은 이차형식 이란 것은 없습니다. 모든 이차형식 은 x^T A x = f_{A} (x) 로 쓸 수 있으며, 항상 A 를 대칭행렬로 선택할 수 있고, 실대칭행렬이므로 항상 직교대각화 가능하므로,이차형식이면 ... 우리가 원하는 만큼 단순화 시켜서 이해하고 계산하여 이용할 수 있습니다.
김범준(2017****99)7월 26일 오후 6:59 답변 감사합니다.
추가 comment: 대각화와 대각행렬간의 차이를 구분하지 못했다는 것을 발견하였습니다.
Answer by 박정호
내적을 정의할 때 벡터의 각 성분끼리의 곱의 합으로도 표현할 수 있지만 a*b*cos@로도 표현할 수 있습니다. a, b는 벡터의 크기니까 0이 아니므로 내적이 0이라면 코사인 값이 0인 것이고 코사인을 0으로 만들어주는 각이 90도이기 때문에 수직이라고 볼 수 있습니다. 2차원, 3차원에서는 수식으로나 그림으로 증명할 수 있고 그 이상의 차원에서도 내적을 같은 식으로 정의할 수 있기 때문에 내적이 0이다라는 것은 직교를 의미합니다.
Answer by 김정한
내적을 표현할 때는 x 보다 ⋅(dot 기호)를 사용하는게 바람직해 보입니다. w를 y에서 x방향으로의 성분(p)을 제외한 부분으로 생각하고 p는 x를 스칼라배한 것이므로 둘의 내적은 0입니다[직교].
이러한 직교 상황에 벡터의 내적이 0인 이유는 위에 박정호 학우분 말씀 처럼 두 벡터 각각의 크기에 두 벡터가 이루는 각도의 cos값을 곱한 스칼라 값으로 나타내 줄 수 있기 떄문입니다. 즉 cos(90degree)=0이고 직교할 때의 내적의 결과 값은 0임을 알 수 있습니다.
Comment by 이승재
- 박상협 학우님께서 질의 해 주신 부분은 제가 정사영이라는 개념을 처음 접하였을때 당시 어려움을 겪었던 부분 중 하나 입니다.
답변 해 주신 분들이 잘 설명해 주셔서 이해가 한층 더 되었던 것 같습니다.
(부족한 부분은 개인적으로 찾아 보아 정사영에 대한 이해도를 높일 수 있도록 하겠습니다.)
65’[수강후기] 컴퓨터공학과 김진웅‘
도전학기 마지막 주가 이렇게 지나갑니다.
이번 강좌를 통하여 인공지능 이해에 필요한 수학적 지식인 선형대수학, 미적분학, 확률통계학 그리고 이를 기반한 인공지능 기술을 배워갈 수 있었습니다.
요약하자면, SVD로 PCA를, GDA로 BP를 알게 되었네요 ㅎㅎ
여러 학우분들과 질문과 답변을 하면서 개념을 정립하고 더욱 성장할 수 있었습니다.
앞으로 인공지능을 이해하고 개발하는 데 첫 발을 잘 내디딘 것 같습니다.
인공지능 시대에 걸맞은 강의를 해주신 교수님과 함께해 준 동료 여러분들, 감사합니다.
[Act01] (기타1) <[H.W.] 자기소개 및 동기 _ 글로벌 경영학과 이승재 (19학번), 목표 A+>
안녕하세요 글로벌 경영학과에 재학중인 이승재입니다.
이 강의를 신청하게 된 계기는 AI에 대한 이해가 나날히 강조되어 가는 현재의 상황에 딱 맞는 강좌라고 생각하여 본 강좌를 신청하게 됬습니다.
목표 학점은 A+ 입니다. 비록 인사캠 출신이라 아직 본 과목 속의 수학에 대해 모르지만, 차근차근 배워나가도록 하겠습니다.
잘 부탁 드립니다. 감사합니다 ;)
[Act02] (요약1 & 실습1 & 질의1) <[1주차] 강의 내용 복습 요약 & 실습 & 주요질의 (1) _ 2019311465 이승재>
[1주차] 강의 내용 복습 요약 (1)
01 백터, 스칼라의 기본 개념에 대해 간략히 배움
02 백터의 연산 (합과 스칼라배)에 대해 간략히 배움
03 백터의 노름과 내적에 대해 간략히 배움
04 코시-슈바르츠 부등식에 대해 간략히 배움
[1주차] 강의 내용 실습 (1)
강의 내용에 관한 실습 내용입니다. 문제의 적절성과 답변에 대해 오류가 있다면 지적하여 주시길 부탁드립니다.
{자체 예제 1-1}. 백터 X = (-13, 10, 0.7, 1/3), Y = (-0.8, -1/7, 0, 5)에 대하여, 1/3X - 5Y를 구하시오.
[Sage 코드 및 답안]
{자체 예제 1-2}. 4차원에 정의된 두 점 A (-1, 0.4, 3, -2), B (-3, 0.8, 2, -5) 사이의 거리를 구하시오
[Sage 코드 및 답안]
[1주차] 주요 질의 사항 (1)
백터에 관한 학습을 이전에 한적이 없기 때문에 기초적인 개념에 있어 질의가 필요합니다.
01 백터에 관하여; (1) 백터란 실질적으로 무엇을 의미하는지 (무작위 백터 X = (-1, 2, 4, -10)는 무엇을 의미하는지 질의하고 싶습니다.) (2) 수식상 스칼라와 백터(백터의 구성성분이 1개의 실수로만 구성되어 있을 경우) 두개는 무엇으로 차이를 가지는지 (3) 백터의 구성성분에는 ‘원점’이 포함되는지 여부에 관해 질의 드립니다.
> 질의 내용 설명
(1). 백터란 교재 상 속도, 위치 이동 등 숫자로 표현되는 물리량에 “방향”까지 포함하는 것이라고 기술되어 있는 것으로 파악했습니다. 후술되어 있는 내용에는 단순히 숫자의 나열로 제시되어져 있는데, (X = (-1, 2, 4, -10) 와 같이 기술되어 있음) 이를 어떻게 해석해야 하는지 질의 드립니다. (단순히 어느 한 점의 위치를 표현한 고정된 좌표인지 아니면 운동하는 순간의 수치를 표현한 유동적인 물리량인지 궁금합니다.)
(2). 스칼라는 백터와 달리 ‘방향’이 없는 물리량으로 이해했습니다. 이때, 스칼라 역시 실수로 표현되는데, 그럼 백터 X = (3) 와 스칼라 k = 3의 차이는 무엇으로 구분되어 지는지 궁금합니다.
(3) 질의 1-(1)에 연장선 상에서, 만일 백터가 점들의 좌표들을 나열한 것이라고 이해될 수 있다면, 원점 (기준점)이 백터에 포함이 되어 있을 수 있는지 (가능성) 여부를 알고자 합니다.
[Act03] Finalized by 이승재,김범준 and SGLee Q. [1주차] 강의 내용 복습 요약 & 실습 & 주요질의by 이승재[HW-1주차] 이승재학우분의 질문에 대한 답변+3번질문에대한 자세한 답변을 구합니다.-답변자: 김범준, 수정보완 답변자:SGLee
[1주차] 주요 질의 사항 (1)
백터에 관한 학습을 이전에 한적이 없기 때문에 기초적인 개념에 있어 질의의 필요성이 느껴져 다소 기초적인 질의를 하고자 합니다.
01 백터에 관하여; (1) 백터란 실질적으로 무엇을 의미하는지 (무작위 백터 X = (-1, 2, 4, -10)는 무엇을 의미하는지 질의하고 싶습니다.) (2) 수식상 스칼라와 백터(백터의 구성성분이 1개의 실수로만 구성되어 있을 경우) 두개는 무엇으로 차이를 가지는지 (3) 백터의 구성성분에는 ‘원점’이 포함되는지 여부에 관해 질의 드립니다.
> 질의 내용 설명
(1). 벡터란 교재 상 속도, 위치 이동 등 숫자로 표현되는 물리량에 “방향”까지 포함하는 것이라고 기술되어 있는 것으로 파악했습니다. 후술되어 있는 내용에는 단순히 숫자의 나열로 제시되어져 있는데, (X = (-1, 2, 4, -10) 와 같이 기술되어 있음) 이를 어떻게 해석해야 하는지 질의 드립니다. (단순히 어느 한 점의 위치를 표현한 고정된 좌표인지 아니면 운동하는 순간의 수치를 표현한 유동적인 물리량인지 궁금합니다.)
A: 특수한 경우에는 맞는 말입니다.
참고: http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-14.html
설명하기 쉽게 2차원 벡터를 가정으로 하겠습니다. X=(2,3)이란 벡터가 있으면 다음과 같이 표현됩니다.
즉 여기서 방향과(우상향), 크기(선의 길이)를 벡터라고 보시면 됩니다. 오른쪽은 일반적인 직선으로 방향성이 없다는 점에서 벡터와의 차이가 있습니다.
(2). 스칼라는 백터와 달리 ‘방향’이 없는 물리량으로 이해했습니다. 이때, 스칼라 역시 실수로 표현되는데, 그럼 백터 X = (3) 와 스칼라 k = 3의 차이는 무엇으로 구분되어 지는지 궁금합니다.
A: 이 경우 벡터는 벡터공간 R^n (n=1 인경우) 의 원소이고, 스칼라는 (underlying Field) 체 F=R 의 원소인 것이 다릅니다.
참고 http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-14.html
스칼라 3+2는 5지만 벡터는 그 방향성에 따라 5가 아닌 다른 값이 나올 수 있습니다. 만약 위의 시점이 (0,0)이고 종점이(2,3)인 X=(2,3)인 벡터를 역방향으로 시점이(2.3)이고 종점이 (0,0)인 벡터를 더한다면 합은 0이 되는 것이 그 예시입니다.
(3) 질의 1-(1)에 연장선 상에서, 만일 백터가 점들의 좌표들을 나열한 것이라고 이해될 수 있다면, 원점 (기준점)이 백터에 포함이 되어 있을 수 있는지 (가능성) 여부를 알고자 합니다. 벡터를 편하게 비교하기 위해 고교수학과정에서는 (0,0)을 기준점으로 비교하고는 있습니다. 이 부분이 실제로 수학적으로 유효한 것인지 저또한 궁금합니다.
이상구(LEE SANGGU)7월 15일 오후 7:24
(3) 질의 에 대한 답변
Answer.
1. 먼저 벡터공간 R^n 의 벡터는 점들의 좌표를 n-tuple 로 나열한 것이라고 이해될 수 있습니다. 다른 벡터 공간에서는 그렇게 할 수 없을 수도 있습니다.
2. 벡터공간 R^n 안에는 원점 (origin, zero vector. 기준점) 인 zero 벡터 가 항상 포함됩니다.
3. 벡터공간 R^2 안의 벡터를 편하게 비교하기 위해 고교수학 과정에서는 (0,0)을 원점 (origin, zero vector. 기준점) 으로 사용합니다.
3-1 (m by n 행렬들의 집합인) 벡터공간 M_{m by n } 안의 벡터 들 중에서는 영행렬이 (origin) zero vector 입니다.
4. 위와 같이 1, 2, 3, 으로 쓰면 수학적으로 유효합니다.
그러나 벡터공간 (집합) 안의 원소들이 모두 벡터 이므로 벡터공간 R^n 이 아닌 다른 벡터 공간에서는 학생이 한 말이 모두 부정확한 말이 될 수 있습니다.
참고 : http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-14.html
[Act04] (요약2 & 실습2 & 질의2) <[1주차] 강의 내용 복습 요약 & 실습 & 주요질의 (2) _ 2019311465 이승재>
[1주차] 강의 내용 복습 요약 (2)
01 정사영이 대해 간략히 배움
02 점과 평면사이의 최단 거리에 대해 간략히 배움
03 선형 연립방정식의 기본 개념과 행렬에 대해 간략히 배움
04 첨가 행렬에 대해 간략히 배움
05 기본행 연산(ERO)에 대해 간략히 배움
06 행 사다리꼴(REF)과 기약 행 사다리꼴(RREF)에 대해 간략히 배움
07 소거법 (Gauss/Gauss-Jordan)을 간략히 배움
[1주차] 강의 내용 실습 (2)
강의 내용에 관한 실습 내용입니다.
{자체 제작 예제} 3차원 백터 X = (5, -2, 3), Y = (-6, 7, 1) 에 대하여 X위로의 Y의 정사영 proj xY 와 X에 직교인 Y의 백터성분 w를 구하시오.
[Sage 코드 및 답안]
{자체 제작 예제} 점 A (-2, 0.8, 1/3, -1)에서 평면 0.15W – 1/7X + 3Y – 1.3Z +5.1= 0에 이르는 거리 D를 구하시오.
[Sage 코드 및 답안]
{자체 제작 예제} 3*3 행렬 A (0, 1, 5, 8, 7, 13, 11, -1, 0)에 대하여; 3가지 계산을 하시오.
Calculation 1 : 두번째 행과 세번째 행을 교환
Calculation 2 : 세번째 행에 -5배
Calculation 3 : 첫 번째 행에 3배를 해서 세번째 행에 더함
[Sage 코드 및 답안]
#행렬 설정 / 기본 가정
A = matrix (3, 3, [0, 1, 5, 8, 7, 13, 11, -1, 0])
# 계산 과정
Cal1 = elementary_matrix (3, row1 = 1, row2 = 2)
Cal2 = elementary_matrix (3, row1 = 2, scale = -5)
Cal3 = elementary_matrix (3, row1 = 2, row2 = 0, scale = 3)
#출력 과정
print("A =")
print(A)
print("Calculation 1 =")
print(Cal1)
print("Calculation 2 =")
print(Cal2)
print("Calculation 3 =")
print(Cal3)
{자체 제작 예제} 3*3 행렬 A (-1, 4, 0.5, 1/9, -3, -1, 0, 5, -8)에 대하여 RREF를 구하시오.
[Sage 코드 및 답안]
[1주차] 주요 질의 사항 (2)
02 정사영에 대하여; 어떤 계산 과정을 거쳐 w = y – p 가 나오는지에 대해 질의 드립니다. 아래 그림상, 단순히 선분의 길이가 아님을 파악할 수 있었으나, 어떤 계산 과정 혹은 어떠한 가정을 토대로 w 가 y - p 로 결정되어지는지 궁금합니다.
* 교수님께 추가 질의 드립니다) 이전 질의에 대한 타 학우분과 교수님의 답변 내용을 제가 어떤 방식으로 정리하여 올려야 하는지 질의 드립니다. (단순히 제 질의 내용을 기술하고, 그에 대한 답변을 복사, 기술하면 되는 것인지, 혹은 따로 제가 이해한 내용을 ‘설명’해야 하는지 여부)
이상구(LEE SANGGU)7월 16일 오후 7:35
[1주차] 주요 질의 사항 (2) 에 답 드립니다.
정사영; 계산 과정은 말 그대로 y 가 주어지고 p 를 구했으니 그 차이를 w 로 정의
한 것 그 이상도 그 이하도 아닙니다.
그것을 R^2 에서 그림으로 나타내면 위와 같다 는 의미 입니다.
벡터는 선분의 길이가 아닙니다.
이 벡터 의 norm 이 크기를 의미합니다.
단순히 w = y - p
로 define 정의 한 것으로 이해 하시면 됩니다.
요약(7개) (중간 4개 기말 3개)
14’[HW 요약] 1주차 요약‘
25’[HW 요약] 2주차 요약‘
33’[요약] 3주차 요약‘
42’[요약] 4주차 요약‘
52’[5주차] [요약] 5주차 요약 <-- 특히 Poisson 분포가 무엇인지 알게 되었습니다.‘
60’Final OK by SGLee [요약] 6주차 요약‘
62’[요약] 7주차 요약‘
14’[HW 요약] 1주차 요약‘
[1일차] Big Picture
• 벡터공간 2개 기본성질과 8개 연산성질을 만족하는 비공집합 V
• 부분공간 ①벡터공간의 부분집합이면서 ②자신도 벡터공간인 비공집합 W
• 일차결합 v = a1u1+...+akuk for {u1,...,uk}
• span 일차결합들의 전체집합 {a1u1+....+akuk}=<U>=U의 span
• 일차독립 a1u1+...+akuk=0 → a1=...=ak=0일 때 {u1,...,uk}는 일차독립 ↔ 일차종속 일차독립이 아님
• 기저 ①B가 일차독립 ②<B>=V일 때 V의 기저 B 특징 (1) maximal linearly independent subset (2) minimal spanning subset
• 차원 dim V = |V의 기저|
• 계수 행공간의 차원 rank(A) = dim Row(A) = dim Col(A)
• 초평면 a┴={(x1,...,xn)|a1x1+...+anxn=0}
• 정사영 p = proj<a>x = ∑(x·ai/||ai||²)ai 직교성분 w = x - p
• 고유값 det(λI-A)=0인 스칼라 λ 고유벡터 Ax=λix인 비공벡터 x for λi
• 대각화 A로부터 대각선행렬 D를 만들 수 있음(D=P^-1AP) ⇔ A와 D는 닮음행렬, A는 diagonalizable, P는 diagonalizing ⇔ 가역행렬 P가 존재
• SVD 특이값분해 A=UΣV^t where 직교행렬 U,V와 일반화된 대각선행렬 Σ
• 이차형식 ax^2 + 2bxy + cy^2 (식 형태)=(행렬 형태) [x y][[a b]^t[b c]^t][x y]^t for 이차방정식 ax^2+2bxy+cy^2+dx+ey+f=0
• 주축정리 이차형식은 변수변환으로 혼합항 xy 없는 식으로 표현 가능
• PCA 데이터 분산을 최대한 보존하면서 서로 직교하는 새로운 축을 찾아, 선형 연관성 없는 저차원 공간으로 변환하는 기법
[2일차] 벡터·정사영·최단거리, 선형연립방정식·행렬
• 정사영 p = projx y = (y·x/||x||²)x
• 최단거리 D = ||projn v|| = v·n/||n|| = |ax0 + by0 + cz0 + d| / sqrt(a^2 + b^2 + c^2)
• 선형연립방정식 해 구하기 ① Gauss 소거법: 첨가행렬 → REF ② Gauss-Jordan 소거법: 첨가행렬 → RREF
[3일차] 역행렬·행렬식·기저·차원, 최소제곱해·QR분해
• 가역 Ax=0 → x=0
• 역행렬 구하기 ① [A:I] -RREF→ [I:A^-1] ② A^-1 = (1/A)adjA
• 수반행렬 adjA = [Aij]^t, 여인자 Aij = i행과 j열을 제외한 행렬의 행렬식x(-1)^{i+j}
일차독립 det ≠ 0
• 해공간 영공간 {x|A x=0}
• span S S 벡터들 일차결합의 전체집합
basis ① 일차독립 ② span하면 V일 때 V의 기저
• 차원 V의 기저벡터개수
• Rank-Nullity 정리 mxn A에 대하여, rank(A) + nullity(A) = n, #leading variables + #free variables = #column
최소제곱해 선형연립방정식 Ax=b의 최소제곱해 x^ ⇔ 정규방정식 A^tAx=A^tb의 해 x^, x^ = (A^tA)^-1A^tb
• 조건: A가 full column rank
Gram-Schmidt 정규직교화법 임의의 기저 S로부터 정규직교기저를 구하는 방법
• y1 = x1, y2 = x2 - projW1 x2, y3 = x3 - projW2 x3 ... → zi = yi/||yi||
• projW1 x2 = (x2·y1/||y1||²)y1, projW2 x3 = (x3·y1/||y1||²)y1 + (x3·y2/||y2||²)y2, ...
QR분해 A가 full column rank일 때 A=QR
• Col(A)의 정규직교기저를 열로하는 Q 직교행렬, R = Q^tA인 상삼각행렬 R 가역행렬
• A -[Gram-Schmidt]→ Q -[R=Q^tA]→ R
• 최소제곱해 구하기 Ax=b ⇔ A^tAx=A^tb ⇔ Rx=Q^tb -[backward substituting]→ x=R^-1Q^tb
25’[HW 요약] 2주차 요약‘
[4일차] 선형변환, 행렬의 대각화
• 선형변환 ①T(u+v)=T(u)+T(v) ②T(ku)=kT(u)인 변환 T
• 모든 선형변환은 행렬변환이다.
• 표준행렬 A = [T(e1):...:T(en)]
핵 ker(T) = {v|T(v)=0} image가 0이 되는 pre-image 전체집합
치역 Im(T) = {T(v)|v} 모든 pre-image의 image 전체집합
• 단사 T(u)=T(v) → u=v, ker(T)={0}
• 전사 모든 w에 대하여 w=T(v)인 v가 존재, Im(T)=R^m
A에 대하여 Ax=λx를 만족하는 고유값 λ 고유벡터 λ에 대응하는 비공벡터 x
• 서로 다른 고유값에 대응하는 고유벡터들은 일차독립
닮음행렬 B=P^-1AP인 가역행렬 P 존재 → A와 B는 닮음, A~B
• (1)detA=detB (2)trA=trB (3)특성방정식 같음 (4)고유값 같음
직교행렬 A^tA=I인 A (1)행벡터들은 정규직교벡터 (2)열벡터들은 정규직교벡터 (3)A^-1=A^t, A는 가역 (4)||Ax||=||x||, 길이보존
직교닮음행렬 C=P^tAP인 직교행렬 P 존재 → A와 C는 직교닮음
대각화가능행렬 A와 대각선행렬이 닮음 ⇔ 대각선행렬 D=P^-1AP인 가역행렬 P 존재, diagonalizable A diagonalizing P
• 대각화가능 A ⇔ A는 n개의 모두 일차독립인 고유벡터를 가짐
• 이 고유벡터들 → P, A의 고유값을 주대각성분으로 하는 대각선행렬 → D
• A로 P와 D 구하기: (1)A의 고유벡터 p1,...,pn 구하기 (2)P=[p1,...,pn], D=diag(λ1,...,λn)
직교대각화가능행렬 A와 대각선행렬이 직교닮음 ⇔ A를 대각화하는 직교행렬 P 존재, orthogonally diagonalizable A orthogonally diagonalizing P
• 직교대각화가능 A ⇔ A가 대칭행렬 ⇔ A는 n개의 일차독립인 고유벡터를 가짐 &서로 다른 고유값에 대응하는 고유벡터들은 직교
• A로 P와 D 구하기: (1)A의 고유벡터 구하기 (2)서로 같은 고유값에 대응하는 고유벡터들 정규직교화 (3)나머지 고유벡터들 정규화 zi (4)직교행렬 P=[z1,...,zn], D=diag(λ1,...,λn)
고유값분해 A = PDP^-1 (대각화가능 A) = Σλiuiui^t (직교대각화가능 A)
• 고유값분해가능 A ⇔ 대각화가능 A (1)detA=Πλi (2)trA=Σλi (3)A^k=Pdiag(λ1^k,...,λn^k)P^-1 (4)A^-1=Pdiag(λ1^-1,...,λn^-1)P^-1
[5일차] 특이값분해, 이차형식
• SVD A=UΣV^t, A에 대한 singular value σ와 singular vector u, v로 분해 가능
• Σ A의 singular value σ를 성분으로 하는 대각선행렬, σ=sqrt(A^tA의 λ) mxn
• V A^tA를 직교대각화하는 직교행렬, A의 singular vector v를 열로하는 행렬 nxn
• U AA^t를 직교대각화하는 직교행렬, A의 singular vector u를 열로하는 행렬 mxm
• A → A^tA -[A^A로부터V,Σ구하기]→ 직교행렬 V, 대각선행렬 Σ -[u=(1/σ)Av]→ 직교행렬 U
Pseudo inverse A^† = VΣ'U^t = (A^tA)^-1A^t (A는 full column rank)
이차형식 q(x)=x^tAx=(a11)(x1)^2+...+(ann)(xn)^2+...+(a12)(x1)(x2)+...+(ann-1)(xn)(xn-1), A는 주대각선을 거듭제곱의 계수, 나머지를 혼합항의 계수의 반으로 하는 symmetric
• q(x)가 positive definite ⇔ q(x)>0 ⇔ A의 고유값이 모두 >0 ⇔ Δi>0
• q(x)가 negative definite ⇔ q(x)<0 ⇔ A의 고유값이 모두 <0 ⇔ (-1)^iΔi>0
• q(x)가 indefinite ⇔ x에 따라 q(x)>0 또는 q(x)<0 ⇔ A의 고유값이 >0과 <0 모두
• q(x)가 positive semidefinite ⇔ q(x)≥0 ⇔ A의 고유값이 모두 ≥0
• q(x)가 negative semidefinite ⇔ q(x)≤0 ⇔ A의 고유값이 모두 ≤0
• 주축정리 이차형식 q(x)=x^tAx는 A의 고유값으로 교차항 없는 식 (λ1)(x'1)^2+...+(λn)(x'n)^2으로 나타낼 수 있음.
33’[요약] 3주차 요약‘
[6일차] 극한·도함수, 미분응용, 적분
• 극한 '0<|x-a|<δ → |f(x)-b|<ε, 모든 ε>0'인 δ 존재 → b는 f(x)의 x→a 극한
연속 (1) 좌극한 (2) 우극한 (3) f(a) (4) 좌극한=우극한=f(a) → f(x)는 연속 at x=a
• 미분가능 f(x) at x=a ⇔ lim h→0 {f(a+h)-f(a)}/h 존재
• 미분계수 lim h→0 {f(a+h)-f(a)}/h = f'(a)
도함수 각 점 x에 그 점에서의 미분계수를 대응한 함수 f`(x)=lim h→0 {f(x+h)-f(x)}/h
f(x)를 미분한다 ⇔ f(x)의 도함수를 구한다
tangent line y=f`(a)(x-a)+f(a) normal line tangent line에 수직인 직선
최대최소값의 정리 f(x) 연속 [a,b] → f(x)의 최대값·최소값 존재, (1) 극값 또는 (2) 양 끝값이 최대값·최소값 후보
뉴턴 방법 함수의 근을 그래프와 도함수로 구하는 방법, a_{n+1} = a_{n} - f(a_{n})/f`(a_{n})
• 부정적분 F`(x)=f(x)인 F(x) 존재 → F(x)는 f(x)의 부정적분, ∫f(x)dx
f(x)를 적분한다 ⇔ f(x)의 부정적분을 구한다
f(x) 미분가능 [a,b] → f(x) 연속 [a,b] → f(x) 적분가능 [a,b]
정적분 ∫a,b f(x)dx
평균값 정리 f(x) 연속 [a,b] → ∫a,b f(x)dx=(b-a)f(ξ), a<ξ<b인 ξ 존재
미적분학 기본정리 f(x) 연속 [a,b], F`(x)=f(x) → ∫a,b f(x)dx=F(b)-F(a)
[7일차] 다변수함수, 편도함수·그래디언트, 함수의 극대·극소
• 외적a X b = |[ijk][a1 a2 a3][b1 b2 b3]|, 벡터
코시슈바르츠 부등식 |x·y| ≤ ∥x∥∥y∥, x·y = ∥x∥∥y∥cosθ
• 편도함수 f_x = lim h→0 {f(x+h, y)-f(x, y)}/h about x of f
(1)f_xy (2)f_yx (3) f_xy, f_yx 모두 연속 → f_xy = f_yx → Hessian ∇² 대칭행렬
방향도함수 Du f(a,b) = lim t→0 {f(a+tu1, b+tu2)-f(a, b)}/t at (a,b) about u of f
f(x,y) 미분가능 (a,b) → Du f(a,b) = ∇f(a,b)·u = ∥∇f(a,b)∥cosθ
(a,b)에서 ∇f(a,b)의 방향이 f가 가장 가파르게 증가하는 방향
(a,b)에서 -∇f(a,b)의 방향이 f가 가장 가파르게 감소하는 방향
• 그래디언트 f의 편도함수를 성분으로 하는 벡터 ∇f(a,b) = <f_x, f_y>
헤시안 f의 2계편도함수를 성분으로 하는 행렬 ∇²f(a,b) = [[f_xx f_xy][f_yx f_yy]]
• 임계점 ∇f(a,b)=0 인 점 (a,b) → (1) 극소·극대점 또는 (2) 안장점(극소·극대 모두 아닌 점)
임계점에서 다변수함수 극대극소판정법: 다변수함수의 Hessian 행렬 (Δ부호) 또는 (λ부호)로 판단
H가 positive definite → 임계점은 극소, H가 negative definite → 임계점은 극대, H가 indefinite → 임계점은 안장
정리 Comment: 일변수함수의 미분·적분을 복습하고 다변수함수의 편도함수·방향도함수를 배우고 편도함수들을 모아 놓은 그래디언트·헤시안을 배웠습니다. 또 임계점이 극소·극대인지 아니면 안장점인지를 Hessian 행렬의 definitiveness로 판단하는 극대극소판정법을 배웠습니다. 다음에 배울 경사기울기하강법의 선행지식으로 한 점에서 f의 값이 가장 가파르게 감소하는 방향이 그 점에서의 그래디언트의 음의 방향인 것을 배웠습니다.
42’[요약] 4주차 요약‘
[8일차] 경사하강법, 중적분
• 경사하강법 f(x)의 최소값을 음의 그래디언트를 반복하여 구하는 방법
• x{k+1} = x{k} + α{k}d{k}에서 find α{k}, d{k} until ∥d{k}∥ <tolerance ε
• x{k} → d{k}=-∇f(x{k}) ─[line search]→ α{k} → x{k+1} until ∥d{k}∥ <ε
• find d{k} <GDA: d{k}=-∇f(x{k})> <CGM: d{k}=-∇f(x{k})+β{k}d{k-1}> <Newton's: d{k}=-(∇²f(x{k}))^-1∇f(x{k})>
• find α{k} ①exact line search: min f(x{k}+αd{k})인 α ②inexact line search: (1)f(x{k}+αd{k})≤f(x{k})+c₁αd{k}^t∇f(x{k}) (2)d{k}^t∇f(x{k}+αd{k})≥c₂d{k}^t∇f(x{k}) 그리고 0<c₁<c₂<1인 α
중적분 ∬R f(x,y) dA ∬∫V f(x,y,z) dxdydz
• Fubini 정리 f(x,y) 연속 R → ∬R f(x,y) = ∫a,b∫c,d f(x,y) dydx = ∫c,d∫a,b f(x,y) dxdy : 적분순서 바꾸어도 같음
• Jacobian |∂(x,y)/∂(u,v)|=|[∂x/∂u ∂x/∂v][∂y/∂u ∂y/∂v]| of Φ(u,v)=(x(u,v),y(u,v)) : 변수변환에 쓰임
• 변수변환 Φ(u,v)=(x(u,v),y(u,v)) 전단사, Φ 편도함수 연속, Φ Jacobian ≠ 0 → ∬R f(x,y) dA = ∬S f(x(u,v),y(u,v))|J(Φ)| dudv
• 극좌표 변수변환 x=rcosθ, y=rsinθ, J(Φ)=r, ∬R f(x,y) dxdy = ∫α,β∫a,b f(rcosθ,rsinθ)r drdθ
정리 Comment: 처음 경사하강법을 접할 땐 매우 어려웠지만 정리를 하고 나서는 이해가 되었습니다. 중적분은 다음 강의에서 배울 통계에서 필수적으로 쓰임을 알게 되었습니다.
52’[5주차] [요약] 5주차 요약 <-- 특히 Poisson 분포가 무엇인지 알게 되었습니다.‘
[10일차] 통계학과 R, 순열·조합·확률
• 표본평균x= 1/n Σx{i}표본분산s² = 1/n-1 Σ (x{i} -x)²표본표준편차s = √s²
• 중위수표본에서 크기순으로 2등분하는 위치에 있는 수4분위수표본에서 크기순으로 4등분하는 위치에 있는 수 3개IQR4분위수에서 Q₃ - Q₁
• 순열순서있는 경우의 수, 집합에서 서로 다른 원소 n개로부터 k개를 순서대로·중복없이 고르는 경우의 수 nPk = n!/(n-k)!조합순서없는 경우의 수, 집합에서 서로 다른 원소 n개로부터 k개를 순서없이·중복없이 고르는 경우의 수 nCk = n!/k!(n-k)! = (n k)
[5주차] 18강 통계학과 R, 19강 순열 조합 확률 // 실습 및 질의
작성자 : 임성규(2015****08)작성일 : 8월 17일 오후 8:15조회수 : 28
- 통계학과 R
-도수분포표, 원도표, 막대도표 구현해보기.
-> 위의 실행 결과 창을 보면 pie(), barplot()을 이용해 구한 원도표와 막대도표를 dev.off()명령어로 시각적으로 표현하기위하여 사용하였지만 null device 로만 표시됩니다. 원인을 모르겠습니다. 원인을 아시는 분은 알려주시면 감사하겠습니다.
-> 첫번째 실습에서와 같이 dev.off() 명령어를 사용하면 null device라는 결과값이 나오면서 표현이 되지않습니다.
-> error가 납니다. 무엇이 문제인지 모르겠습니다. 원인을 아시는 분은 알려주시면 감사하겠습니다. mathlab.knou.ac.kr 에서 실행해 보아도 같은 error가 납니다.
정원철(2017****79)8월 18일 오전 10:51
S=Set([1,2,3,4,5,6])A = Set([2, 4, 6])B = Set([3, 6])AcapB = A.intersection(B)P_AcapB = AcapB.cardinality()/A.cardinality()P_AcapB>>> 1/3정상적으로 작동함을 확인했습니다 !!
이상구(LEE SANGGU)8월 18일 오후 2:00
Good^^
--------------------------------------------------------------------------------
열린문제 2 실습 및 질문
작성자 : 천가영(2020****17)작성일 : 8월 17일 오후 10:11
조회수 : 56
[ 열린문제 2] 아래 웹주소에서 찾은 연속확률변수 X (의 확률 밀도함수 f(x) 를 변형하여) 연속확률변수 X 의 기댓값과 분산, 표준편차를 위의 코드를 이용 (수정 사용) 하여 구하시오.
5. 금요일 아침 백화점 사장 김 신중씨는 당일 결재하여야 할 액면금액 10만원의 어음에 대한 자금이 확보되어 있지 않아 금일의 매출액으로 어음을 지급하려고 한다. 이 백화점에 방문한 고객 1인당 평균 구매액은 270원이고, 표준편차는 180원이다. 최근에 방문객 추세로 보아 오늘 400명의 고객이 방문할 것으로 예상된다.
-------
(출처 : 위키백과)
* 액면금액 :
액면금액(Par value)는 금융이나 회계적 개념으로 명시된 금액을 말한다. 액면가격, 액면가, 액면이라고도 한다.
예를 들어 100원짜리 동전은 액면이 100원이다. 주식에서 액면금액은 회사가 그 금액 이하로 팔지 않는다. 대한민국에서는 상법상 1주의 최저 액면금액은 100원이다.
* 어음 :
어음은 발행하는 사람이 미래의 일정한 금액을 일정한 시기와 장소에서 무조건 지급할 것을 약속하거나(약속어음) 또는 제3자에게 그 지급을 위탁하는(환어음) 유가증권이다.
------
5-1. 1인당 평균 구매액이 270원, 표준편차가 180원, 금일 방문객 400명일 때 (원래 문제)
총구매액의 기대값 108000, 분산 12960000
[질문] ,
인데 왜 총구매액의 분산은 32400*400을 한 값이 나오는지 궁금합니다. V(X)=32400, V(400X)=3600^2=32400*400 인데, 총구매액의 분산을 V(400X)로 볼 수 없는 것인가요?
금일 어음을 결재하지 못할 확률 0.0139
[질문2] 또한 R코드로 실습을 하였을 때 확률은 0.0131345 로 0.0139와는 다르게 나오는데 어떤 점에서 잘못된 것
인지 잘 모르겠습니다.
5-2. 표준편차가 250원일 때
X~N(270, 62500)
400X~N(10.8만, 2500만)
금일 어음을 결재하지 못할 확률
P(S=<10만) = 약 0.0548
표준편차가 높은 값을 가질 때, 어음을 결재하지 못할 확률이 조금 올라갔다.
5-3. 1인 평균 구매액이 400원으로 늘고, 금일 방문객 수가 270명으로 줄었을 때
X~N(400, 32400)
270X~N(10.8만, 8748000)
금일 어음을 결재하지 못할 확률
P(S=<10만) = 약 0.00342
구매자가 줄었지만 평균 구매액이 늘어 결재하지 못할 확률이 낮아졌다.
[질문2] 또한 R코드로 실습을 하였을 때 확률은 0.0131345 로 0.0139와는 다르게 나오는데 어떤 점에서 잘못된 것인지 잘 모르겠습니다.
정원철(2017****79)8월 18일 오전 10:29
질문2 - 코드 자체에 문제는 없어 보입니다.제 생각엔 문제푼 사람이 실수한 것 같습니다.(100000-108000)/3600 ≈ -2.22, P(Z < -2.22) = 0.5 - 0.4868 = 0.0132입니다.즉, 소수점 세번째 자리 이후의 오차를 고려했을 때 max 0.0132가 되어야 한다는 말이기 때문에 가영님의 답이 옳은 것 같습니다.
• 중복집합중복하는 원소가 있는 집합중복순열무한중복순열중복집합에서 중복도가 무한인 서로 다른 원소 n개로부터 k개를 순서대로·중복하여 고르는 경우의 수 n^k유한중복수열중복집합에서 중복도가 k{i}인 서로 다른 원소 n개로부터 k개를 순서대로·중복하여 고르는 경우의 수 k!/k{1}!...k{n}!중복조합중복집합에서 서로 다른 원소 n개로부터 k개를 순서없이·중복하여 고르는 경우의 수 nHk = (n+k-1 k)
표본공간전체 경우의 집합사건특정 경우의 집합확률임의의 한 경우가 사건에 포함되는 비율, 사건이 일어나는 비율조건부확률사건 A가 일어났을 때 사건 B의 확률 P(B|A) = P(A∩B)/P(A)베이즈정리P(A{i}|B) = P(A{i})P(B|A{i})/P(B) = P(A{i})P(B|A{i})/ΣP(A{i})P(B|A{i})
[11일차] 확률변수, 이산확률분포
• 확률변수표본공간의 모든 표본에 실수를 대응시켜 사건화하는 함수확률분포확률변수가 가지는 함수값에 그 값을 가질 확률을 대응시킨 함수
• 기대값확률변수 함수값의 분포평균 μ = E(X) = Σx{i}f(x{i}) = ∫xf(x)dx분산확률변수 함수값이 기대값을 기준으로 분포하는 정도를 나타낸 수 σ² = V(X) = Σ(x{i} -μ)²f(x{i}) = ∫(x - μ)²f(x)dx = E(X)² - μ²표준편차분산의 제곱근 σ = √V(X)
• E(aX+b) = aE(X)+b V(aX+b) = a²V(X)
표준화 확률변수확률변수 X에 그 기대값을 빼고 표준편차로 나눈 확률변수 (X - μ)/σ
• 평균이 0이고 분산이 1
Bernoulli 분포사건의 확률이 p인 사건이 일어나는 경우의 확률변수의 확률분포 B(1, p)
• X~B(1, p) → P(X=x) = p^x (1-p)^(1-x) E(X) = p V(X) = p(1-p)
Binomial 분포사건의 확률이 p인 사건이 n번 중 일어나는 경우의 확률변수의 확률분포 B(n, p)
• X~B(n, p) → P(X=x) = (n x) p^x (1-p)^(n-x) E(X) = np V(X) = np(1-p)
Poisson 분포단위시간에 평균 λ번 일어나는 시균등확률 사건이 일어나는 경우의 확률변수의 확률분포 P(λ)
• X~P(λ) → P(X=x) = e^-λ λ^x / x! E(X) = λ V(X) =λ
Comment:
순열과 조합으로 경우의 수를 셀 수 있고 베이즈정리를 알게 되었으며, 이산확률분포에 어떤 것이 있는지, 특히 Poisson 분포가 무엇인지 알게 되었습니다.
60’Final OK by SGLee [요약] 6주차 요약‘
[12일차] 연속확률분포, 공분산·상관계수
• 균등분포일정구간[a, b]에서만 확률을 갖고 그 확률이 일정한 확률변수의 확률분포 U(a, b)
• X ~ U(a, b) → f(x)=1/b-a E(X)=b+a/2 V(X)=(b-a)²/12
정규분포확률밀도함수가 f(x)=1/(√(2π)σ)e^(-(x-μ)²/2σ²)인 확률변수의 확률분포 N(μ, σ²)
• X ~ N(μ, σ²)→ f(x)=1/(√(2π)σ)e^(-(x-μ)²/2σ²) E(X)=μ V(X)=σ²
표준정규분포기대값이 0, 분산이 1인 정규분포 N(0, 1)
• Z ~ N(0, 1) → f(x)=1/√(2π)e^(-z²/2) E(Z)=0 V(Z)=1
• 확률변수 X가 정규분포를 따를 때 표준화 확률변수 (X-μ)/σ는 표준정규분포를 따른다.
• P(a≤X≤b) = P((a-μ)/σ≤Z≤(b-μ)/σ)
지수분포단위시간에 평균 λ번 일어나는 시균등확률 사건이 일어난 다음 일어날 때까지 걸리는 시간 확률변수의 확률분포 G(1, 1/λ)
• X ~ G(1, 1/λ) → f(x)=λe^(-λx) E(X)=1/λ V(X)=1/λ²
• 중심극한정리확률변수 Xi가 서로 독립이고 서로 같은 확률분포를 가지며 그 기대값이 μ이고 그 분산이 σ²일 때, 확률변수의 개수 n이 충분히 클 경우에 확률변수의 평균은 N(μ, σ²/n)을 따른다.
• 모집단으로부터 표본을 추출하는 경우의 확률변수 n개:크기 n의 확률표본확률표본의 평균 확률변수:표본평균
• 평균 μ이고 분산σ²인 모집단으로부터 확률표본을 추출하였을 때, 확률표본의 크기 n이 충븐히 클 경우에 표본평균은N(μ, σ²/n)을 따른다.
• 결합확률분포확률변수 X1,...,Xn이 가지는 함수값 x1,...,xn에 그 일어날 확률 P(X1=x1,...,Xn=xn)을 대응시킨 함수
• 주변확률분포결합확률분포에서 하나의 확률변수만의 확률분포
• 공분산Cov(X, Y) = σxy = E[(X-μx)(Y-μy)] = E(XY)-μxμy
• 상관계수Corr(X, Y) = ρ = σxy/σxσy
• 공분산행렬확률변수의 분산과 공분산으로 이루어진 행렬 Σ = Var[x] = [[σ1² ... σ1n] ... [σn1 ... σn²]]
[13일차] 주성분분석
• 주성분우선순 분산 최대·데이터 분포를 잘 따르는 서로 연관성 없도록 한 기존변수 일차결합 변수
• 적재계수주성분을 이루는 확률변수 일차결합 계수
• 주축주성분의 적재계수 벡터
• 데이터행렬각 표본을 행, 각 특성·확률변수를 열로하는 행렬
• 센터링된 행렬데이터행렬에서 각 성분에 해당 열평균을 뺀 행렬
• 데이터행렬의 공분산행렬Σ = 1/n-1 X^tX
• 주성분의 분산은 공분산행렬의 고유값, 주성분의 주축은 공분산행렬의 고유벡터
• 주성분화 데이터행렬각 표본을 행, 각 주성분을 열로하는 행렬 Z = XV
• X는 데이터행렬 V는 주성분의 주축을 열로하는 행렬
주성분score 주성분화 데이터행렬의 열벡터
• 차원축소데이터 분포를 따르면서 데이터 차원을 줄이는 것
• 주성분분석데이터 분포를 잘 따르는 주요 주성분으로 이루어진 데이터 공간으로 데이터를 변환하는 차원축소
• SVD를 이용하여 주성분분석이 간단해진다.
• X = USV^t → 주성분 분산 S1²/n-1 -[k개 선택]→ 축소된 주성분화 데이터행렬 UkSk
Comment: 그 동안 접했던 여러 개념들, 공분산행렬과 SVD을 이용하여 인공지능의 첫번째로 배운 기술, PCA를 배웠습니다.
62’[요약] 7주차 요약‘
[14일차] 신경망
• 신경망입력층에서 데이터를 받아 다음층의 가중치와 활성화함수를 적용해 다음층의 출력 구하기를 계속하여 출력층에 결과를 내는 모델
• 활성화함수신경망 각 층의 출력을 결정하는 함수
오차역전파법오차를 줄이기 위해 각 층에 역전파된 오차로 그 층의 가중치를 갱신하는 방법
• ① 이전층에 오차 역전파하기 ② 현재층의 가중치 갱신하기: 경사하강법 이용
Comment: 인공지능 두번째 기술, 신경망과 오차역전파법을 배웠습니다. 또한, 오차역전파법에서 가중치를 갱신할 때 그 동안 배웠던 경사하강법이 적용됨을 알게 되어 좋았습니다.
[Act10] (요약4 & 실습4) [1주차] 강의 내용 복습 요약 & 실습 (4) _ 2019311465 이승재
[1주차] 강의 내용 복습 요약 (4)
# 이해도가 전반적으로 떨어지기 때문에 복습이 요구됨을 느낌.
01 행벡터와 열벡터, 행공간과 열공간, 행계수와 열계수에 대해 간략히 배움
02 Rank-Nullity 정리에 대해 간략히 배움
03 최소 제곱해(오차의 최소), 정규방정식에 대해 간략히 배움
04 직교집합과 정규 직교집합, 직교기저와 정규직교기저에 대해 간략히 배움
05 Gram-Schmidt 정규직교화 과정에 대해 간략히 배움
06 QR 분해에 대해 간략히 배움
[1주차] 강의 내용 실습 (4)
강의 내용에 관한 실습 내용입니다.
{자체 예제 141.} 정수 범위에서 정의된 5*5 무작위 행렬 A의 Rank와 Nullity를 구하시오.
[Sage 코드 및 답안]
{자체 예제 142.} X1 = (3, 4, 5, 0), X2 = (-1, -3, 2, 1), X3 = (-2, 0, 3, 7), X4 = (-2, 1, 3, 3) 에 대하여, Gram-Schmidt 정규직교화 과정을 이용하여 R^(4)의 기저 A = {X1, X2, X3, X4}로부터 R^(4)의 정규직교기저 B = {B1, B2, B3, B4}를 구하시오.
[Sage 코드 및 답안]
[Act11] (댓글1) [Final OK by TA] Finalized by 한수현, Q by 김다은 (1강 질문 -1), 답변 by 한수현, 나종진
[Final OK by TA] Finalized by 한수현, Q by 김다은 (1강 질문 -1), 답변 by 한수현, 나종진
(제목 적는 법이 아직 헷갈리는데, 제목 양식이 틀렸다면 알려주세요ㅠ) <--- 이 모델로 하시면 충분합니다.
1.
위의 이미지에서 ||x|| 는 원점에서 점 P에 이르는 거리로 정의된다고 나와있습니다.
그러므로 노름과 거리는 실수공간에서는 차이가 없다고 보면 될 것 같습니다.
그러나 거리 개념의 일반화인 norm 개념 은 일반 벡터공간에서도 사용되는 더 일반화 된 개념입니다.
2. 실수 크기, 노름 은 |x|
벡터의 크기 노름 은 || x ||
행렬의 크기 노름은 ||| A ||| 과 같이 구분하여 개념을 일반화 합니다.
||x|| 를 구하기 위해 제곱을 한 채 루트를 씌우는 이유는 벡터공간 안의 점과 점 사이의 거리 공식이 어떻게 구해졌는지를 보면 될 것 같습니다.
(이미지 출처: 네이버 지식백과)
2차원을 기준으로 먼저 말씀드리면 거리 공식은 피타고라스 정리를 이용합니다.
위 이미지에서 점 A (x1, y1), B (x2, y2)라 해서 선분 AB를 빗변으로 하고 다른 변 두 개는 각각 x축, y축과 평행한 직각삼각형을 상상해보면,
밑변의 길이는 (x2-x1), 높이의 길이는 (y2-y1)이 될 것입니다.
그래서 피타고라스 정리에 의해 d^2 = (x2-x1)^2 + (y2-y1)^2. 여기서 양변에 루트를 씌워서 구해진 것이 위의 이미지와 같은 식입니다.
노름에 대한 설명에서는 벡터공간이 R^n이기 때문에
이와 같이 나온다고 보면 될 것 같습니다.
3. 은 나종진 님이 미리 아래 답을 주셨습니다.
Comment. 이상 간단히 질문에 대한 답을 마칩니다.
이승재(2019****65)7월 25일 오전 4:06
가볍게 생각하고 넘어갔던 개념을 다시한번 짚어주신점에 감사드립니다. 노름에 대한 개념을 쉽게 그리고 자세히 설명 해 주셔서 개념 이해의 측면에 있어, 많이 도움 되었습니다.\\
최소제곱문제와 QR분해 실습
작성자 : 한수현(2019****61)작성일 : 7월 19일 오전 2:52
조회수 : 12
최소제곱문제를 QR분해를 이용하여 푸는 실습입니다.
최소제곱문제는 선형연립방정식 Ax=b의 해가 없을 때, 오차 ||Ax-b||을 최소화하는 근사해를 찾는 문제이다.
그러므로 위 사진에서의 Ax=b는 해가 없지만, 오차를 최소화하는 근사해는 구할 수 있다.
QR 분해를 최소제곱문제에 적용시키면, 다음을 이용하여 근사해를 구할 수 있다.
먼저 위의 Ax=b에 QR 분해를 하면,
QR분해는 행렬 A가 full-column rank일 때 가능하므로 A가 full-column rank인지 확인하는 과정이 필요하다.
여기서 A가 full-column rank이므로 A는 QR분해를 이용해서 최소제곱문제를 풀 수 있다.
이러한 과정으로 QR분해로 최소제곱문제를 풀 수 있다.
실습을 통해 QR분해를 최소제곱문제에 어떻게 적용시키는지와 그 적용시키는 과정에서 확인 해야할 점(행렬 A가 full-column rank인지)이 무엇인지 알 수 있었습니다.
-----
이상구(LEE SANGGU)7월 19일 오전 10:29
한수현 씨, 아주 잘했습니다. 실습을 통해 QR분해를 최소제곱문제에 어떻게 적용시키는지와 그 적용시키는 과정에서 확인 해야할 부분 (행렬 A가 full-column rank인지)이 무엇인지 알 수 있었다니. 아주 잘했습니다. 이제 주어진 행렬의 SVD 와 이차형식 하시고 ...그리고 2장 미적 (GDM 방법) GDM(경사하강법) http://matrix.skku.ac.kr/math4ai/gradient_descent/ 으로 바로 가셔도 됩니다.
[Final OK by SGLee] Finalized by 나종진, 답변 by 유가이올렉산드르 , 직교대각화가능할 필요충분조건(교재 p.125) 질문 by 나종진
작성자 : 나종진(2017****17)작성일 : 7월 23일 오후 6:35
조회수 : 42
[Final OK by SGLee] Finalized by 나종진, 답변 by 유가이올렉산드르 , 직교대각화가능할 필요충분조건(교재 p.125) 질문 by 나종진
직교대각화가능할 필요충분조건 질문 (교재 p.125)
예제 5번의 풀이방법을 보고 sage를 통해 예제 4번에도 적용하려 합니다.
예제 5번의 풀이에서는 중복되는 고윳값이 있을 경우
1. 중복되는 고유벡터의 정규직교화과정을 통해 직교벡터를 구한 뒤
2. 나머지 고유벡터와 직교벡터를 합쳐 새로운 행렬을 만든 뒤
3. 새로운 행렬에 직교화 과정을 통해 대각행렬을 구해냅니다.
예제 4. 질문입니다. 예제 4번 문제는 이러합니다.
행렬 A의 고윳값을 eigenvectors_right()로 구하면
A=matrix([[0,3,3],[3,0,3],[3,3,0]])
print(A.eigenvectors_right())
실행값
[(6, [(1, 1, 1)], 1), (-3, [(1, 0, -1),(0, 1, -1)], 2)]
이러한 값이 나오게됩니다.
그러면 고윳값은 6, -3이고
고윳값 –3에 대응하는 교유벡터 [(1,0,-1)(0,1,-1)]이 나오게됩니다.
예제 5번의 1번 과정으로
x1=vector([1,0,-1])
x2=vector([0,1,-1])
x3=vector([1,1,1])
B=matrix([x1,x2])
[G, mu] = B.gram_schmidt()
print(G)
실행값
[ 1 0 -1]
[-1/2 1 –1/2]
이러한 값이 나오게 됩니다.
이를 y1, y2로 바꾸어 계산하면
마지막 총 결과값이
A=matrix([[0,3,3],[3,0,3],[3,3,0]])
print(A.eigenvectors_right())
x1=vector([1,0,-1])
x2=vector([0,1,-1])
x3=vector([1,1,1])
B=matrix([x1,x2])
[G, mu] = B.gram_schmidt()
print(G)
y1=vector([1,0,-1])
y2=vector([-1/2,1,-1/2])
C = column_matrix([y1,y2,x3])
P = column_matrix([C.row(i) / C.row(i).norm() for i in range(0, 3)])
print("P =")
print(P)
print()
print(P.transpose()*A*P)
실행값
[(6, [(1, 1, 1)], 1), (-3, [(1, 0, -1),(0, 1, -1)], 2)]
[ 1 0 -1]
[-1/2 1 -1/2]
P =
[ 0.6666666666666666 0.0 -0.6666666666666666]
[-0.3333333333333333 0.7071067811865475 -0.3333333333333333]
[ 0.6666666666666666 0.7071067811865475 0.6666666666666666]
[ 0.0 3.5355339059327373 -1.3333333333333335]
[ 3.5355339059327373 2.9999999999999996 -2.1213203435596424]
[-1.3333333333333335 –2.1213203435596424 -2.6666666666666665]
이렇게 나옵니다.
예제의 답과 다르게 나와 어디서 잘못되었는지 궁금합니다.
sage를 통해 어떻게 구하는지 궁금합니다.
Final
A=matrix([[0,3,3],[3,0,3],[3,3,0]])
print(A.eigenvectors_right())
x1=vector([1,0,-1])
x2=vector([0,1,-1])
x3=vector([1,1,1])
B=matrix([x1,x2])
[G,mu]=B.gram_schmidt()
print(G)
y1=vector([1,0,-1])
y2=vector([-1/2,1,-1/2])
C=column_matrix([y1,y2,x3])
P=column_matrix([C.column(i)/C.column(i).norm()foriinrange(0,3)])
print("P=")
print(P)
print()
print(P.transpose()*A*P)
실행값
[(6, [(1, 1, 1)], 1), (-3, [(1, 0, -1),(0, 1, -1)], 2)]
[ 1 0 -1]
[-1/2 1 -1/2]
P =
[ 1/2*sqrt(2) -1/3*sqrt(3/2) 1/3*sqrt(3)]
[ 0 2/3*sqrt(3/2) 1/3*sqrt(3)]
[ -1/2*sqrt(2) -1/3*sqrt(3/2) 1/3*sqrt(3)]
()
[-3 0 0]
[ 0 -3 0]
[ 0 0 6]
교재와 같은 값이 나왔다.
또한
C = matrix([y1,y2,x3])
P=matrix([C.row(i)/C.row(i).norm()foriinrange(0,3)])
print("P=")
print(P.transpose())
이렇게 받아도 같은 결과가 나온다.
한쪽에서는 column으로 계산하고 그 다음에는 row 로 계산해서 다른 결과값이 나왔었다.
학우분과 소통하면서 문제를 푸니 내가 보지 못한 부분을 캐치해주셔서 너무 고마웠다.
[Act12] (댓글2) [Final OK by TA] 2주차 SVD 정리 (Very Good^^) < SVD 와 주성분 분석과 공분산 행렬> by 김진웅 댓글 by 이상구 교수님, 박정호, 한수현, 나종진, 채희준
[Act13] (요약5 & 실습5 & 질의3) [2주차] 강의 내용 복습 요약 & 실습 & 주요질의 (1) _ 2019311465 이승재
[2주차] 강의 내용 복습 요약 (1)
01 변환 (행렬변환, 선형변환)에 대해 간략히 배움
02 표준행렬에 대해 간략히 배움
03 핵, 단사, 전사, 전단사 그리고 동형사상에 대해 간략히 배움
04 선형변환이 단사가 되기 위한 필요충분 조건으로의 ker T = {0}에 대해 간략히 배움
05 고윳값과 고유벡터, 닮은 행렬에 대해 간략히 배움
06 대각화 가능한 행렬과 대각화의 필요충분조건인 차수와 동일한 개수의 일차독립인 고유벡터 소지에 대해 간략히 배움
[2주차] 강의 내용 실습 (1)
강의 내용에 관한 실습 내용입니다.
{자체 예제 211.} 선형변환 T: R^(4) -> R^(4)를 T(w, x, y, z) = (3w+x-z, -y+2z, x-y+z, -2w+3x)로 정의할 때, T의 kernel을 구하고, T가 단사인지 확인하시오.
[Sage 코드 및 답안]
{자체 예제 212.} 정수 범위에서 무작위로 생성된 4*4 행렬 A에 대하여, 고윳값과 고유 벡터를 구하시오.
[Sage 코드 및 답안]
{자체 예제 213.} 정수 범위에서 무작위로 생성된 5*5 행렬 A에 대하여, 대각화가능한지 확인하시오.
[Sage 코드 및 답안]
[2주차] 주요 질의 사항 (1)
01 닮은 행렬 설명 중, 삼각행렬의 특성방정식에 대하여 언급하신 부분이 있는데, 특성방정식에 대해서 자세한 설명을 찾기 힘들어, 설명을 해주시길 부탁드립니다.
1) 특성 방정식이란 무엇인지 (특별히 삼각행렬의 특성방정식에 대해)
2) 특성 방정식을 구하는 방법 (간략히)
02 자체 예제 213번의 결과가 오류로 인하여 나오지 않는데, 어떤 오류고 어떻게 해야 정상적으로 작동되는지 아시는 분 계신다면 알려주길 부탁드립니다.
[Act14] (요약6 & 실습6) [2주차] 강의 내용 복습 요약 & 실습 (2) _ 2019311465 이승재
[2주차] 강의 내용 복습 요약 (2)
01 직교행렬의 정의와 직교행렬의 여러 정리들에 대해 간략히 배움
02 직교 대각화란 무엇인지, 직교 대각화의 필요충분조건인 A가 대칭행렬 일 것에 대해 간략히 배움
03 고윳값 분해에 대해 간략히 배움 (복습 요구됨)
04 특이 값 분해에 대해 간략히 배움 (복습 요구됨)
05 일반화된 역행렬과 관련된 내용에 대해 간략히 배움
06 일반화된 역행렬을 이용한 최소제곱해 문제에 대해 간략히 배움
07 이차 곡선 방정식의 행렬적 표현, 원뿔곡선에 대해 간략히 배움
08 R^(2 / n)상의 이차형식에 대해 간략히 배움
09 R^(2)의 주축정리에 대해 간략히 배움
10 음/양의 정부호와 부정부호에 대해 간략히 배움
[2주차] 강의 내용 실습 (2)
강의 내용에 관한 실습 내용입니다.
{교재 예제 5.} (자체적으로 예제를 제작하려 했으나, 중간 과정에서 나오는 숫자가 복잡하여 교제 예제로 대체합니다.)
[Sage 코드 및 답안]
먼저, 고윳 값과 고유 벡터를 구해줍니다.
다음, 고유벡터 x3와 x4가 직교가 아닐수 있으므로, Gram-Schmidt 정규직교화 과정을 통해 직교기저를 찾아줍니다.
앞서 찾은 것들을 바탕으로, 답을 찾을 수 있습니다.
{교재 예제 1.}
[Sage 코드 및 답안]
우선 고유벡터를 구합니다.
다음, 구한 고유벡터를 토대로 답을 구합니다.
{자체 예제 223.} 이차 형식 q(x, y, z) = 이 양의 정부호, 음의 정부호, 부정부호 중 어떤 것에 해당하는지 보이시오.
[Sage 코드 및 답안]
실행 결과를 토대로 본 결과, 주어진 이차형식은 부정부호에 속합니다.
[Act15] (정리3 & 댓글3) Q, A & Finalized by 이승재, 김진웅, SGLee [2주차] 강의 내용 복습 요약 & 실습 & 주요질의 (1) _ 2019311465 이승재
Q.
01 닮은 행렬 설명 중, 삼각행렬의 특성방정식에 대하여 언급하신 부분이 있는데, 특성방정식에 대해서 자세한 설명을 찾기 힘들어, 설명을 해주시길 부탁드립니다.
1) 특성 방정식이란 무엇인지 (특별히 삼각행렬의 특성방정식에 대해)
2) 특성 방정식을 구하는 방법 (간략히)
A. (by 김진웅)
특성방정식은 고유값과 관련이 있습니다.
Q.
02 자체 예제 213번의 결과가 오류로 인하여 나오지 않는데, 어떤 오류고 어떻게 해야 정상적으로 작동되는지 아시는 분 계신다면 알려주길 부탁드립니다.
A. (by 김진웅, SGLee)
A=random_matrix(ZZ,5,5)
print(A.is_diagonalizable(QQbar))
하시면 될 겁니다.
Comment (by 이승재)
오류에 대해 정상적으로 작동할 수 있게 알려주신 분들 모두 감사드립니다. :) 덕분에 오류 나지 않고 정상 작동한것을 확인했습니다.
특성방정식에 대한 추가자료를 보면서 어느정도 이해가 갔습니다. 자료 올려주신 것에 감사드립니다.
(추가 댓글 내용)
이상구(LEE SANGGU)7월 25일 오전 6:40
삼각행렬의 특성방정식 추가 자료 입니다. https://m.blog.naver.com/PostView.nhn?blogId=ldj1725&logNo=220262866094&proxyReferer=https:%2F%2Fwww.google.com%2F
실습(7개) (중간 4개 기말 3개)
13‘[HW 실습] 1주차 실습’
23‘[HW 실습] 2주차 실습’
38’[Final OK by SGLee] 김진웅 [실습] 3주차 실습‘
45’[실습] 4주차 실습‘
49’포아송분포와 베르누이분포 관계 실습 <--- Practice in http://matrix.skku.ac.kr/KOFAC/ <--결과 사진 수정했습니다’
53’[5주차] [실습] 5주차 실습 <--- R언어가 제공하는 시각화 이미지 코드, 통계에 필요한 함수 코드는 편리했습니다.‘
64’[6주차] 6주차 실습‘
13‘[HW 실습] 1주차 실습’
목차
#벡터 정의
#합, 차, 스칼라배
#norm, 거리, 내적
#정사영, 벡터성분, 점-면 거리
#행렬 정의
#첨가행렬, RREF, Gauss-Jordan 소거법(해-소거법), 해-함수
#행렬의 덧셈, 스칼라배, 곱셈
#전치행렬, 가역성(false-negative 있음), 역행렬-함수
#기본행연산, 역행렬-RREF, 해-역행렬
#대각선행렬, 단위행렬, 영행렬, 대칭행렬, 반대칭행렬
#치환, 행렬식, 수반행렬, 역행렬-수반행렬
#일차독립-행렬식, 해공간, rank, nullity
#최소제곱해, Gram-Schmidt 정규직교화법, QR분해, 최소제곱해-QR분해
#벡터 정의
a=vector([1,2,3,4,5,6,7])
b=random_vector(7, x=-10, y=10)
c=random_vector(ZZ, 5)
print("a=", a)
print("b=", b)
print("c=", c)
#합, 차, 스칼라배
print("a+b=", a+b)
print("a-b=", a-b)
k=2
print("k*a=", k*a)
#norm, 거리, 내적
print("||a||", a.norm())
print("distance a,b:", (a-b).norm())
print("inner product a,b=", a.inner_product(b))
#정사영, 벡터성분, 점-면 거리
p=a.inner_product(b)/b.inner_product(b)*b
w=a-p
print("projection of a onto b=", p)
print("vector component of a onto b=", w)
n=vector([1,5,3,4,2,4,0])
d=2
D=abs(a.inner_product(b)+d)/n.norm()
print("distance a,n^perp=", D)
#행렬 정의
A=Matrix([[1,2,3,5,3],[4,5,6,0,1],[7,8,9,2,3],[0,2,3,1,2],[1,3,0,0,2]])
B=Matrix(5, 5, [0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12])
C=random_matrix(ZZ, 7, 7, x=-10, y=10)
print("A=")
print(A)
print("B=")
print(B)
print("C=")
print(C)
#첨가행렬, RREF, Gauss-Jordan 소거법(해-소거법), 해-함수
print("[C:b]=")
print(C.augment(b))
print("A's RREF=")
print(A.rref())
print("[A:c]=")
print(A.augment(c))
print("[A:c]'s RREF=")
print(A.augment(c).rref())
print("Ax=c's solution=", A.solve_right(c))
#행렬의 덧셈, 스칼라배, 곱셈
print("A+B=")
print(A+B)
k=4
print("k*A=")
print(k*A)
print("A*B=")
print(A*B)
#전치행렬, 가역성(false-negative 있음), 역행렬-함수
print("B^t=")
print(B.transpose())
print("A is invertible?", A.is_invertible())
print("A^-1=")
print(A.inverse())
#기본행연산, 역행렬-RREF, 해-역행렬
E1=elementary_matrix(7, row1=1, row2=4)
E2=elementary_matrix(7, row1=2, scale=-3)
E3=elementary_matrix(7, row1=0, row2=6, scale=10)
print("E1=")
print(E1)
print("E2=")
print(E2)
print("E3=")
print(E3)
I=identity_matrix(5)
print("[A:I]'s RREF=")
print(A.augment(I).rref())
print("A^-1=")
print(A.augment(I).rref().submatrix(0,5,5,5))
print("Ax=c's solution:", A.inverse()*c)
#대각선행렬, 단위행렬, 영행렬, 대칭행렬, 반대칭행렬
D = diagonal_matrix([-5,-3,-1,1,3,5,7])
I = identity_matrix(7)
O = matrix(7, 7, 0)
print("D=")
print(D)
print("I=")
print(I)
print("O=")
print(O)
S=matrix([[1,2,3,4],[2,5,6,7],[3,6,8,9],[4,7,9,10]])
K=matrix([[0,-1,-2,-3],[1,0,-4,-5],[2,4,0,-6],[3,5,6,0]])
print("S is symmetric?", bool(S==S.transpose()))
print("K is skew-symmetric?", bool(K==-K.transpose()))
#치환, 행렬식, 수반행렬, 역행렬-수반행렬
print("positions where inversion occured:", Permutation([3,1,2,4,7,5,6]).inversions())
print("number of inversions:", Permutation([3,1,2,4,7,5,6]).number_of_inversions())
print("even permutation?:", Permutation([3,1,2,4,7,5,6]).is_even())
print("|A|=", A.det())
adjA=A.adjugate()
print("adjA=")
print(adjA)
print("A^-1=")
print((1/A.det())*A.adjugate())
#일차독립-행렬식, 해공간, rank, nullity
list=[]
for i in range(7):
list.append(random_vector(7, x=-10, y=10))
V=column_matrix(list)
print("V=")
print(V)
print("det V of list=", V.det())
P=matrix([[1,1,1,1],[2,2,2,2],[1,2,3,5],[0,0,0,0],[1,2,4,7]])
print("Null(P)=")
print(P.right_kernel())
print("rank(P)=", P.rank())
print("nullity(P)=", P.right_nullity())
#최소제곱해, Gram-Schmidt 정규직교화법, QR분해, 최소제곱해-QR분해
D=matrix([[1,0],[1,2],[1,4],[1,6],[1,7]])
b=vector([1,2,4,6,6])
print("Dx=b`s LSS=", (D.transpose()*D).inverse()*D.transpose()*b)
[G, mu]=A.gram_schmidt()
N=matrix([G.row(i)/G.row(i).norm() for i in range(0, G.nrows())])
print("o.n basis of A=")
print(N)
def gs_orth(A):
m, n = A.nrows(), A.ncols()
r = A.rank()
if m <n:
raise ValueError("The number of rows must be larger than the number of columns.")
elif r <n:
raise ValueError("The matrix is not full column rank.")
[G, mu] = A.transpose().gram_schmidt()
Q1 = matrix([G.row(i) / G.row(i).norm() for i in range(0, n)])
R1 = Q1*A
Q = simplify(Q1.transpose())
R = simplify(R1)
return Q, R
Q, R = gs_orth(A)
print("Q =")
print(Q)
print("R =")
print(R)
print("Q*R =")
print(Q*R)
print("Ax=c`s LLS=", R.solve_right(Q.transpose()*c))
23‘[HW 실습] 2주차 실습’
#함수 정의, 선형변환 정의, 표준행렬-단위백터, 표준행렬-명령어, image 구하기-선형변환, image 구하기-표준행렬
#kernel 구하기, 치역 구하기, 단사 확인, 전사 확인
#고유값, 고유벡터
#대각화가능, 대각화하는행렬, 대각화한 대각선행렬
#직교대각화가능, 직교대각화하는행렬, 직교대각화한 대각선행렬
#SVD
#Pseudo Inverse, 최소제곱해-Pseudo Inverse
#선행주소행렬식
#함수 정의, 선형변환 정의, 표준행렬-단위백터, 표준행렬-명령어, image 구하기-선형변환, image 구하기-표준행렬
var('a, b, c, d, e, f, g')
h(a, b, c, d, e, f, g) = [f + g,\
a - b + c - d + e - f + g,\
a + c + e + 2*d + 2*f + 2*g,\
b - c + 3*d - 3*e + 5*f -5*g,\
-2*a + -3*b,\
3*c + 2*d]
print(h)
print()
T = linear_transformation(QQ^7, QQ^6, h)
print(T)
print()
e1 = vector([1, 0, 0, 0, 0, 0, 0])
e2 = vector([0, 1, 0, 0, 0, 0, 0])
e3 = vector([0, 0, 1, 0, 0, 0, 0])
e4 = vector([0, 0, 0, 1, 0, 0, 0])
e5 = vector([0, 0, 0, 0, 1, 0, 0])
e6 = vector([0, 0, 0, 0, 0, 1, 0])
e7 = vector([0, 0, 0, 0, 0, 0, 1])
A = column_matrix([T(e1), T(e2), T(e3), T(e4), T(e5), T(e6), T(e7)])
print(A)
print()
A = T.matrix(side = 'right')
print(A)
print()
x0 = random_vector(7)
print("x0=", x0)
print("T(x0)=", T(x0))
print("A*x0=", A*x0)
print("=====")
#kernel 구하기, 치역 구하기, 단사 확인, 전사 확인
K = T.kernel()
print(K)
print()
I = T.image()
print(I)
print()
print("A is injective?", T.is_injective())
print("A is surjective?", T.is_surjective())
print("=====")
#고유값, 고유벡터
A = matrix(QQ, [[1, 1, 4], [0, -4, 0], [-5, -1, -8]])
print("A=")
print(A)
print("Eigenvalues of A (%d)="%len(A.eigenvalues()), A.eigenvalues())
print("Eigenvectors of A =")
print(A.eigenvectors_right())
print("=====")
#대각화가능, 대각화하는행렬, 대각화한 대각선행렬
print("A is diagonalizable?", A.is_diagonalizable(QQbar))
D, P = A.eigenmatrix_right()
print("Diagonalizing P")
print(P)
print("Diagonalized Diagonal D")
print(D)
print("A=PDP^-1:")
print(P*D*P^-1)
print("=====")
#직교대각화가능, 직교대각화하는행렬, 직교대각화한 대각선행렬
A = matrix([[2, 1, 1, 0], [1, 2, 1, 0], [1, 1, 2, 0], [0, 0, 0, 1]])
print("A=")
print(A)
print("A is orthogonally diagonalizable?", A.is_symmetric())
D, P = A.eigenmatrix_right()
P = P.transpose().gram_schmidt()[0]
P = matrix([P.row(i) / P.row(i).norm() for i in range(0, P.nrows())]).transpose()
print("Orthogonally diagonalizing P=")
print(P)
print()
print("Orthogonally diagonalized diagonal D=")
print(D)
print("A=PDP^t:")
print(P*D*P.transpose())
print("=====")
#SVD
A = matrix([[0, 1], [1, 1], [1, 0]])
print("A=")
print(A)
print()
transposed = False
if A.nrows() >A.ncols():
A = A.transpose()
transposed = True
B = A.transpose()*A
eig = B.eigenvalues()
sv = [sqrt(i) for i in eig if i != 0]
S = diagonal_matrix(sv)
if S.nrows() <A.nrows():
Z = zero_matrix(A.nrows()-S.nrows(), S.ncols())
S = block_matrix([[S], [Z]], subdivide=False)
if S.ncols() <A.ncols():
Z = zero_matrix(S.nrows(), A.ncols()-S.ncols())
S = block_matrix([S, Z], nrows=1, ncols=2, subdivide=False)
if transposed == True:
S = S.transpose()
print("S=")
print(S)
print()
V_ = B.eigenmatrix_right()[1]
#V_ = gram_schmidt()[0] #When not orthogonal (check only eigenvectors for the same eigenvalue
V_ = matrix([V_.column(i) / V_.column(i).norm() for i in range(0, V_.ncols())]).transpose()
U_ = matrix([A*V_.column(j)/sv[j] for j in range(0, len(sv))]).transpose()
if transposed == True:
V = simplify(U_)
U = simplify(V_)
else:
V = simplify(V_)
U = simplify(U_)
print("V=")
print(V)
print("U=")
print(U)
print("A=USV^t:")
print((U*S*V.transpose()))
print()
print("=====")
#Pseudo Inverse, 최소제곱해-Pseudo Inverse
A = matrix([[1, 2, 3], [0, 1, 0], [2, 3, 10], [3, 0, 0]])
print("A=")
print(A)
print()
print("Psuedo Inverse of A=")
print((A.transpose()*A).inverse()*A.transpose())
#출처 http://matrix.skku.ac.kr/math4ai/part1/
x1 = vector([1 for i in range(105)])
x2 = vector([3.45, 2.78, 2.52, 3.67, 3.24, 2.1, 2.82, 2.36, 2.42, 3.51, 3.48, 2.14,
2.59, 3.46, 3.51, 3.68, 3.91, 3.72, 2.15, 2.48, 3.09, 2.71, 2.46, 3.32,
3.61, 3.82, 2.64, 2.19, 3.34, 3.48, 3.56, 3.81, 3.92, 4, 2.52, 2.71,
3.15, 3.22, 2.29, 2.03, 3.14, 3.52, 2.91, 2.83, 2.65, 2.41, 2.54, 2.66,
3.21, 3.34, 3.68, 2.84, 2.74, 2.71, 2.24, 2.48, 3.14, 2.83, 3.44, 2.89,
2.67, 3.24, 3.29, 3.87, 3.94, 3.42, 3.52, 2.24, 3.29, 3.41, 3.56, 3.61,
3.28, 3.21, 3.48, 3.62, 2.92, 2.81, 3.11, 3.28, 2.7, 2.62, 3.72, 3.42,
3.51, 3.28, 3.42, 3.9, 3.12, 2.83, 2.09, 3.17, 3.28, 3.02, 3.42, 3.06,
2.76, 3.19, 2.23, 2.48, 3.76, 3.49, 3.07, 2.19, 3.46])
A = column_matrix([x1, x2])
b = vector([3.52, 2.91, 2.4, 3.47, 3.47, 2.37, 2.4, 2.24, 3.02, 3.32, 3.59, 2.54,
3.19, 3.71, 3.58, 3.4, 3.73, 3.49, 2.25, 2.37, 3.29, 3.19, 3.28, 3.37,
3.61, 3.81, 2.4, 2.21, 3.58, 3.51, 3.62, 3.6, 3.65, 3.76, 2.27, 2.35,
3.17, 3.47, 3, 2.74, 3.37, 3.54, 3.28, 3.39, 3.28, 3.19, 2.52, 3.08,
3.01, 3.42, 3.6, 2.4, 2.83, 2.38, 3.21, 2.24, 3.4, 3.07, 3.52, 3.47,
3.08, 3.38, 3.41, 3.64, 3.71, 3.01, 3.37, 2.34, 3.29, 3.4, 3.38, 3.28,
3.31, 3.42, 3.39, 3.51, 3.17, 3.2, 3.41, 3.29, 3.17, 3.12, 3.71, 3.5,
3.34, 3.48, 3.44, 3.59, 3.28, 3, 3.42, 3.41, 3.49, 3.28, 3.17, 3.24,
2.34, 3.28, 2.29, 2.08, 3.64, 3.42, 3.25, 2.76, 3.41])
c, d = n((A.transpose()*A).inverse()*A.transpose()*b, digits = 5)
print(c, d)
p1 = point([(x2[i], b[i]) for i in range(105)])
p2 = plot(c + d*x, (x, 2, 4), color = 'red')
(p1+p2).show()
print("=====")
#선행주소행렬식
A = random_matrix(ZZ, 5, 5)
print("A=")
print(A)
print()
for i in range(1, 6):
principal_minor = A.submatrix(0, 0, i, i).det()
print(i, "th principal minor= ", principal_minor)
Comment
실습하면서 SVD를 구현하는 것이 꽤나 어렵다는 것을 느꼈습니다.
38’[Final OK by SGLee] 김진웅 [실습] 3주차 실습‘
##함수 정의, 함수 그리기, 함수 분리 그리기
##극한·좌극한·우극한 구하기, 도함수 구하기, 접선의 방정식 구하기, 최대값·최소값 구하기, 적분
##평면 그리기, 벡터 그리기, 내적·외적·사잇각 구하기
##벡터함수 정의, 벡터함수 그리기
##벡터도함수 구하기, 위치벡터·접선벡터 그리기, 곡선 길이 구하기
##편도함수 구하기, 2계편도함수 구하기, 연쇄법칙
##그래디언트·방향도함수·방향미분계수 구하기, 임계점 구하기, 극값 구하기-고유값·소행렬식
##함수 정의, 함수 그리기, 함수 분리 그리기
#함수 정의
var('x')
h=abs(x)^sqrt(2)
f1(x)=-abs(x-3)
f2(x)=abs(x-3)
#함수 그리기
var('x')
h=abs(x)^sqrt(2)
A = plot(h, x, -3, 3, linestyle="--", color='green')
B = plot(1-e^(-x)/e^x+1, x, -3, 3)
show(A + B, ymax=10, ymin=-10)
print()
#함수 분리 그리기
var('x')
f1(x)=-abs(x-3)
f2(x)=abs(x-3)
plot(piecewise([[(-3, 0), f1], [(0, 3), f2]]), (x, -3, 3)).show()
print("=====")
##극한·좌극한·우극한 구하기, 도함수 구하기, 접선의 방정식 구하기, 최대값·최소값 구하기, 적분
#극한·좌극한·우극한 구하기
var('x')
g(x)= (x/abs(x))*ln(abs(x))/(e^x+1)
print("limit of g(x)=", limit(g(x), x=0))
print("l.limit of g(x)=", limit(g(x), x=0, dir='-'))
print("r.limit of g(x)=", limit(g(x), x=0, dir='+'))
#도함수 구하기
var('x')
f(x)=cos(e^x-1)+sin(1-e^x)
print("derivative of f(x)=", diff(f(x), x))
print("2nd derivative of f(x)=", diff(diff(f(x), x), x))
print("3rd derivative of f(x)=", diff(diff(diff(f(x), x), x), x))
#접선의 방정식 구하기
var('x')
f(x)=x^5-3*x^4+sqrt(abs(x))
df(x)=diff(f(x), x)
y(x)=df(1)*(x-1)+f(1)
print("tangent line of f(x) at x=1:", y(x))
p1=plot(f(x), x, -1, 3, linestyle="--", color='blue')
p2=plot(y(x), x, -1, 3, color='red')
show(p1+p2)
print()
#최대값·최소값 구하기
var('x')
f(x)=x^5-x^3
plot(f(x), x, -1, 1).show()
print("derivative = 0:")
print(solve(diff(f(x))==0, x)) #-1/5*sqrt(5)*sqrt(3), 1/5*sqrt(5)*sqrt(3), 0
ma=max(f(-1/5*sqrt(5)*sqrt(3)), f(1/5*sqrt(5)*sqrt(3)), f(-1), f(1))
mi=min(f(-1/5*sqrt(5)*sqrt(3)), f(1/5*sqrt(5)*sqrt(3)), f(-1), f(1))
print("maximum of f in [-1,1]:", ma)
print("minimum of f in [-1,1]:", mi)
#적분
var('x')
f(x)=(e^x)/(x+3)
p1=plot(f(x), -1, 1, fill='axis')
p2=plot(f(x), -2, 2, color='red')
show(p1+p2)
print("integral of f in [-1,1]:", integral(f(x), x, -1, 1).simplify_full().n(digits=5))
print("=====")
##평면 그리기, 벡터 그리기, 내적·외적·사잇각 구하기
#평면 그리기
var('x, y, z')
implicit_plot3d(x+y+z==1, (x,-3,3), (y,-3,3), (z,-3,3))
#벡터 그리기
a = vector([0, 1])
b = vector([1, 0])
c = a + b
print(c)
plot(a, color='red')+plot(b, color='green')+plot(c, color='black')
#내적·외적·사잇각 구하기
a = vector([1, 2, 3, 4, 5, 6, 7])
b = vector([0, 1, 0, 1, 5, 6, 7])
print("inner product:", b.dot_product(a))
print("cross product:", b.cross_product(a))
print("theta(radian):", arccos(b.dot_product(a)/(a.norm()*b.norm())).n(digits=5))
print("=====")
##벡터함수 정의, 벡터함수 그리기
#벡터함수 정의
var('t')
r = vector([sin(2-t), cos(t^2), t])
#벡터함수 그리기
var('t')
r = vector([sin(2-t), cos(t^2), t])
C = parametric_plot3d(r, (t, -pi, pi), color='green', thickness=2)
Ar = arrow3d(r(t=0), r(t=0+0.1), color='red')
show(C+Ar)
print("=====")
##벡터도함수 구하기, 위치벡터·접선벡터 그리기, 곡선 길이 구하기
#벡터도함수 구하기
var('t')
r(t) = (sin(2-t), cos(t^2))
dr = diff(r(t), t)
print("r`(t) =", dr(t))
#위치벡터·접선벡터 그리기
var('t')
r(t) = (sin(t), cos(t))
dr = diff(r(t), t)
sp = r(0.1)
ep = dr(0.1)/abs(dr(0.1)) + r(0.1)
p = parametric_plot(r(t), (t, -pi, pi))
tv = line([sp, ep], color='red')
show(p + tv)
#곡선 길이 구하기
var('t')
r(t) = (sin(t), cos(-t), e^t)
dr = diff(r(t), t)
s(t) = dr.norm()
print("length of r(t) [-pi,pi]:", integral(s(t), t, -pi, pi).n(digits=5))
parametric_plot3d(r(t), (t, -pi, pi))
print("=====")
##편도함수 구하기, 2계편도함수 구하기, 연쇄법칙
#편도함수 구하기
var('x, y')
f(x, y) = 12*x^2 + 21*y^2 - 2*x*y
print("f_x(x, y) =", diff(f(x, y), x, 1))
print("f_y(x, y) =", diff(f(x, y), y, 1))
#2계편도함수 구하기
var('x, y')
f = e^x*cos(y) - e^y*x^2
print("f_xx =", diff(f, x, 2))
print("f_xy =", diff(f, x, y))
print("f_yx =", diff(f, y, x))
print("f_yy =", diff(f, y, 2))
#연쇄법칙
var('u, v, s, t')
x = cos(u)*e^v
y = -u+v
z = s*sin(t)
print("dz/du =", diff(z(s=x, t=y), u).simplify_full())
print("dz/dv =", diff(z(s=x, t=y), v).simplify_full())
print("=====")
##그래디언트·방향도함수·방향미분계수 구하기, 임계점 구하기, 극값 구하기-고유값·소행렬식
#그래디언트·방향도함수·방향미분계수·헤시안 구하기
var('x, y')
f(x, y) = x + 2*y^2 + 3*x^3
u = vector([cos(pi/4), sin(pi/4)])
gradf = f.gradient()
print("gradient of f =", gradf)
print("directional derivative Duf(x, y) =", gradf(x, y).dot_product(u))
print("directional derivative Duf(0, 0) =", gradf(0, 0).dot_product(u))
print("Hessian of f =")
print(f.hessian())
#임계점 구하기
var('x, y')
f(x, y) = x^3 - y^2 + 3*x*y
gradf = f.gradient()
print("critical point :")
print(solve([gradf[0]==0, gradf[1]==0], x, y))
#극값 구하기-고유값·소행렬식
var('x, y, z')
f(x, y, z) = x^3 - y^2 + z^3 - x + y - z
gradf = f.gradient()
print("critical point :")
print(solve([gradf[0]==0, gradf[1]==0, gradf[2]==0], x, y, z))
h = f.hessian()
H = [None]*5
H[1] = h(1/3*sqrt(3), 1/2, 1/3*sqrt(3))
H[2] = h(1/3*sqrt(3), 1/2, -1/3*sqrt(3))
H[3] = h(-1/3*sqrt(3), 1/2, 1/3*sqrt(3))
H[4] = h(-1/3*sqrt(3), 1/2, -1/3*sqrt(3))
for i, h in enumerate(H[1:], start=1):
print("eigenvalues of H%d =" %i, h.eigenvalues())
for i in range(1, h.ncols()+1):
H_principal_minor = h.submatrix(0, 0, i, i).det()
print("The ", i, "번째 principal minor 는 ", H_principal_minor)
print("H1 indefinite (1/3*sqrt(3), 1/2, 1/3*sqrt(3)) 안장점")
print("H2 indefinite (1/3*sqrt(3), 1/2, -1/3*sqrt(3)) 안장점")
print("H3 indefinite (-1/3*sqrt(3), 1/2, 1/3*sqrt(3)) 안장점")
print("H4 negative definite (-1/3*sqrt(3), 1/2, -1/3*sqrt(3)) 극대")
실습 Comment: 벡터 외적 구할 때 5차원이 오류를 내면서 7차원은 된다고 해서 신기했습니다. 배운대로 실제로 극값을 판별해 보니 재미있었습니다.
경사하강법 내용 정리 및 질문
작성자 : 장환승(2016****69)작성일 : 8월 9일 오후 7:51
조회수 : 32
http://matrix.skku.ac.kr/math4ai/part2/ 에서 가져옴
2.5 Gradient Descent Algorithm(경사-기울기 하강법, 傾斜下降法)
16강 동영상, Gradient Descent Algorithm https://youtu.be/XWDPAdKhq-Q (16:29)
Gradient Descent Algorithm은 어떤 모델에 대한 비용(Cost)를 최소화 시키는 알고리즘으로써, 머신러닝 및 딥러닝 모델에서 사용되는 가중치의 최적해를 구할 때 널리 쓰이는 알고리즘이다. 기본 개념은 함수의 기울기(경사)를 구하여 기울기가 낮은 쪽으로 계속 이동시켜서 극값에 이를 때까지 반복시키는 것이다.