Spring 2020,  Take-Home Exam (Action Learning)


  인공지능을 위한 기초수학(Basic Math for AI)

             Prof : Sang-Gu LEE

http://matrix.skku.ac.kr/math4ai/  http://matrix.skku.ac.kr/math4ai-tools/


      KMS-AI-Talk-인공지능이란무엇인가? by SGLee  (30분) 2020-06-05  https://youtu.be/8oTM9n5OUBY  

      Math4AI 인공지능 수학 목록 http://matrix.skku.ac.kr/math4ai-tools/


Name (이름) : 김예훈(전자전기공학부, 1학년), 황인성(소프트웨어학과, 2학년), 신재열(전전컴 4학년), 나우주(반도체시스템공학부 1학년), 김승한(건축학과), 민재필(글경), 조완제(생명과학), 홍태규(프랑스어문학과, 2013),  서형찬(연기예술학과), 이인창(전자-D), 김윤수(수학), 조완제, ... 



                   


4차시 : Final PBL 7분 발표 <안주현> 등 [Take Home exam, Final PBL 발표] https://youtu.be/IQXmWGu5hhI

5차시 : Final-PBL-발표-2020학번-1학년-신입생-김예훈 발표   https://youtu.be/3e0VybhOS1U

6차시 : Final-PBL-발표-한병욱 발표 https://youtu.be/w2bw7I-jVEM

[Matrixtopia] Math4AI PBL 보고서 발표 2학년 김용훈 https://youtu.be/kNFxp8SP5Rc


    

 

 Ch 1장. Self Evaluation 1. (개인 성찰 노트) (학생용)

 

 과 목 명

인공지능을 위한 기초수학

 이  름

김예훈 등

학 과

전자전기공학부

학습한 내용

통계학

자기 점검표

활동(Activity)

Excellent

Good

Fair

1.

나는 개인학습을 할 때 다양한 학습 자료를 사용하였다.

 

V

 

2.

나는 새로운 정보와 지식제공에 기여하였다.

 

V

 

3.

 

나는 토의에 적극적으로 참여하였고 토의의 촉진과 이해를 위한 적절한 질문을 많이 제공하였다.

 

V

 

4.

나는 우리 반이 원활한 학습활동을 하는데 기여하였다.

 

V

 

 

   ※ 다음 항목들을 고려하여 자신의 학습과정과 내용을 기록하시오.


1. 나는 지금 수행되고 있는 학습의 진행내용을 이해하고 있는가?  

     교재를 읽기만 해서는 개념에 대한 완벽한 이해가 불가능하다고 생각한다. 게다가 전공수준의 내용들이 적지 않기에 학습 자체가 쉽지않다. 또한 현재 미분적분학2를 수강 중인 1학년이라서 편도함수가 다중적분에 대해서는 능수능란한 수준이 아니다. 하지만 이 과목의 Goal은 증명과정의 암기나 개념의 완벽한 숙지가 아닌, 개념에 대항 talking about it 이므로 부담감을 가질 필요는 없다고 본다. May PBL을 제출한 지 얼마 되지 않았기에 학습 진행내용에 대한 이해는 큰 변화는 없다. 학기가 곧 끝나는 시점까지도 코딩에 대한 이해는 제자리 걸음인 것이 많이 답답하고 아쉬울 따름이다.

 

3월  누구보다 적극적으로 참여하였고, 조금만 더 연습하면 백지상태에서 완전하게 옮겨쓰는 일도 가능할 것이라고 봅니다.


4월  누구보다 적극적으로 참여하였고 대부분의 내용을 이해하고 있는데, 아무래도 학기 초보다 바빠져서 처음만큼 충실히 하지 못한 것도 있고, 그동안 배운 내용이 종합적으로 결합되다 보니 조금 더 어려워진 느낌이 있습니다. 미진한 부분을 보충할 필요성을 느낍니다.


5월 (1) 1학년 2학기 때 확률과 통계를 학습한 경험이 있기 때문에 이번 달에 수행되고 있는 학습의 진행내용에 대해 충분히 이해하고 있습니다. 물론 어느 정도 잊어버린 것들도 있지만, 이번 학습을 통해 다시 떠올리면서, 더 깊은 이해를 할 수 있었습니다.


(2) 선형대수학 과목을 선이수하였고 미적분학 과목을 1학년 때 이수하였던 데에 반해 통계에 대한 개념은 고등학교 때 배웠던 바가 다였기에 아무래도 다소 생소한 감이 있었습니다. 그리고 Sage 프로그램 언어가 C언어나 Python 형식과 비슷했던 데에 반해 통계에서 주로 쓰는 R 언어가 이질적인 측면이 있어 그에 대한 적응에 어려움이 많았습니다.


사실 3주차 수업 막바지에 수강 신청을 해서, 이전 내용을 학습하느라 진도를 따라잡기가 쉽지 않았습니다. 그래도 지금까지 제가 학습한 부분에서 크게 어렵거나 막히는 부분은 없었습니다. 특히 수업에서 사용하는 ‘Sagemath’ 언어는 파이썬(Python) 언어를 미리 학습해둔 덕에, 쉽게 이해할 수 있었습니다. 조속히 밀린 내용을 학습하여, 진도를 따라잡기 위해 노력하도록 하겠습니다.

통계 단원은 다른 단원에 비해 이해하는 것이 수월했습니다. 아마 고등학교 때 학습하였던 통계에 대한 기초 지식이 많은 도움이 되었던 것 같았습니다. 그 덕분에 통계는 다른 단원에 비해 잘 마무리된 것 같습니다.

 이번에 학습한 빅데이터와 인공지능에 대해서 완벽히 이해하고 있다고 생각하진 않는다. 하지만 인공지능에게 어떠한 학습을 해주는지, 인공지능에 있는 일종의 인공 뉴런이 어떤 구조로 되어있는지, 그리고 인공지능으로 어떤 분야에 대입할 수 있는지 등 전반적인 지식에 대해 이해하고 있다고 생각한다.

 

이번 단원은 앞서 배운 part 1,2,3의 내용을 모두 종합하는 단원이였다. 앞선 단원에서의 수학적 공식들과 증명과정들을 완벽히 이해하지 못하였기 때문에 part4에 나오는 수학적 증명들과 정의들을 앞에서 찾아가며 공부해야 했었다. 하지만 주요개념인 인공지능(Artificial Intelligence, AI), 기계학습(Machine Learning), 딥러닝(Deep Learning) 등의 개념들과 인공지능에 역사에 대해서는 자세히 알게 되었다. 또, 앞서나온 특이값 분해(SVD)를 이용하는 주성분 분석(Principal Component Analysis, PCA)와, 신경망(Neural Network)의 구조와 응용분야에 대한 지식들을 이해하게 되었다.



2. 어떤 방법을 통해서 학습하였는가? (학습방법 및 자료) 

    편도함수나 다중적분에 대한 부분은 미분적분학2의 진도를 학습한 이후에 보는 것이 시너지 효과를 낼 수 있을 것 같았기에 진도에 맞춰 하고, 그 외의 생소한 부분은 교재 중심으로 어느 정도 이해가 될 때까지 반복해서 보았다. 물론 코딩을 입력하고 결과를 보는 것은 필수 단계!

3월 교수님께서 올려주신 온라인 강의와 제공해주신 pdf파일을 활용하였으며, Sage 코드를 하나하나 분석하며 코딩을 이해하려 노력했습니다.


4월 교수님께서 올려주신 온라인 강의와 제공해주신 pdf파일을 활용하였으며, Sage 코드를 하나하나 분석하며 코딩을 이해하려 노력했습니다. 강의를 듣다가 이해가 가지 않는 부분, 더 알고싶은 부분은 주저없이 문의게시판을 활용하여 질문하였고 교수님의 답변을 통해 새로운 지식을 습득하였습니다.


5월 (1) 이번 과목에서 준 교재들은 물론, 이전 학기 때 배운 ‘확률과 통계’ 때 얻은 확률과 통계 교재와 요약 pdf 파일을 통해 학습하였습니다.


(2) 그동안은 질문을 많이 하는 위주였는데 이번에는 질문보다는 다른 학생들의 게시글에 대해서 답을 다는 방법을 위주로 진행하였습니다. R 언어가 너무 생소하고 모르겠어서 개인적으로는 R에 관한 책을 하나 사서 보고 있습니다.


우선 ‘인공지능을 위한 기초수학’이라는 책과 온라인 강의를 기반으로 학습을 이행하였습니다. 부가적으로 선형대수학에 대한 이해를 높이기 위해, ‘Linear Algebra and It’s Applications’라는 책도 같이 학습하고 있습니다. 또한 컴퓨터에 ‘Sagemath’를 설치하여, 책에 나오는 코드들을 직접 실행시켜보고 있습니다. 코드가 의미하는 것을 이해하면서, 학습한 코드들을 직접 활용해보는 방법으로 ‘Sagemath’ 언어를 학습하고 있습니다.

이전과 동일한 방식으로 컴퓨터에 Sagemath와 R을 구동시켜둔 상태에서 교재에 있는 문제에 대한 코드를 입력해보며 학습하였습니다. 또한 R은 처음 다루어 보는 언어이기 때문에 가이드라인을 참조하였고, 코드에 있는 부가적인 옵션도 같이 학습하였습니다.

 

 교수님께서 주신 교재 자료는 물론 교재에 있는 링크를 따라 가 학습하기도 했고(예시: 라그랑주), 그리고 갖고 있는 책들 중 간단한 인공지능(정확히는 머신 러닝)을 구현하는 코드들이 있는 책을 보면서 이해했다.

이번 단원은 앞선 단원에 비해 학습양이 적었다. 그래서 교재를 통한 학습과 병행해서 교수님이 제공하시는 유튜브를 이용하여 학습하였다. 그리고 빅데이터와 인공지능에 대한 학술자료들을 찾아보며 공부했다. 또한, QnA에 인공지능의 다양한 적용사례들과 심화적인 내용들을 다뤄주시는 분들의 글이 있어서 글들을 읽고 comment를 달면서 학습하였다.



3. 본 강좌의 학습활동을 통하여 무엇을 배웠나?

 

   구체적인 개념을 일일이 나열할 수는 없지만 특히 통계학과 미적분학 파트에서는 대학입시당시에 공부한 내용 중 자세히 서술되지 않았던 부분에 대한 심화적인 내용을 교재를 통해 학습할 수 있어서 흥미로웠다. 인공지능과 수학의 연결고리만이라도 이 강좌를 통하여 볼 수 있다는 것이, 아쉬움 속에서도 얻은 수확이라고 본다,

3월 끝없는 토론활동을 통하여 나의 기존에 알고 있던 지식을 가다듬을 수 있고, 단시간에 방대한 지식을 습득할 수 있다는 것입니다.


4월 끝없는 토론활동을 통하여 나의 기존에 알고 있던 지식을 가다듬을 수 있고, 단시간에 방대한 지식을 습득할 수 있다는 것입니다. 요즘은 컴퓨터가 고도로 발달하여 인공지능을 바라보는 때이기에 다루는 데이터의 크기가 어마어마하고 손으로 계산하는 것은 한계가 있을 수밖에 없습니다. 코딩학습을 통하여 이러한 한계를 극복할 수 있고 나아가 새로운 시대의 흐름에 발맞추어 갈 수 있게 되었습니다.


5월 (1) 이번 달에 배우는 확률과 통계의 개념들의 대부분은 고등학교 때 이미 배운 것들로 구성되어 있지만, 공분산과 상관계수만큼은 그 때 배운 개념들이 아니었습니다. 이번 과목을 통해, 제대로 알고 있지 못했던 개념을 새롭게 배울 수 있었습니다.


(2) 고등학교 때 다루던 1변수 확률분포를 넘어 2변수 확률분포와 그에 딸린 개념들, 이항분포, 정규분포 외에 지수분포, 푸아송분포를 학습하면서 통계의 더 넓은 분야를 경험하게 되었습니다. 인공지능의 통계 분야에 있어 필요한 R 언어를 맛보기 하였는데 그 논리구조에 대해서 조금은 더 살펴봐야 할 것 같습니다.


선형대수학이라는 수학적 개념을 학습하고 그것을 프로그래밍 언어로 표현하면서, 수학이 인공지능에서 어떤 양상으로 활용되는지를 파악할 수 있는 계기가 되었습니다. 여러 개의 벡터를 하나의 행렬로 표현할 수 있는 것을 보면, 왜 이것이 인공지능에게 있어서 중요한지를 파악할 수 있었습니다. 벡터를 데이터의 관점에서 보면, 행렬은 입력값에 대하여, 데이터에 근거해 값을 출력시킬 수 있는 변환(Transformation)작업을 수행하는 것입니다. 또한 순열(치환)에 대한 심화적인 의미를 학습하면서 이것이 행렬의 행렬식(Determinant)을 결정하는 요소가 될 수 있다는 것에, 큰 흥미를 느꼈습니다. 선형대수학과 관련이 없는 것처럼 보이는 개념이 연결되어 활용될 수 있다는 점에서, 한 분야가 아닌 전 분야에 걸친 지식이 중요하다는 점을 몸소 느끼게 되었습니다. 

포아송 분포, 지수 분포, 베르누이 분포, 이항 분포, 정규 분포와 같은 확률 분포의 연결 관계를 새롭게 깨달았습니다. 사실 포아송 분포, 지수분포, 베르누이 분포는 교재에서 처음 배운 내용이었습니다. 그렇기에 더더욱 흥미로웠습니다. 또한 기존에 얕게 알고 있었던 내용들을 공고히 하게 되는 계기가 되어 좋았습니다. 예를 들어, 베이즈 정리는 단순히 조건부확률의 변형판이라고 알고 있었는데, 여기서 직접 베이즈 정리가 어떤 것인지를 깨닫게 되었습니다.

 

인공지능에게 어떠한 학습을 해주는지, 인공지능에 있는 일종의 인공 뉴런이 어떤 구조로 되어있는지, 그리고 인공지능으로 어떤 분야에 대입할 수 있는지 등을 배웠다.

 

 주요개념인 인공지능(Artificial Intelligence, AI), 기계학습(Machine Learning), 딥러닝(Deep Learning) 등의 개념들과 인공지능에 역사에 대해서는 자세히 알게 되었다. 또, 앞서나온 특이값 분해(SVD)를 이용하는 주성분 분석(Principal Component Analysis, PCA)와, 신경망(Neural Network)의 구조와 응용분야에 대한 지식들을 이해하게 되었다.


빅데이터와 인공지능에 대한 심화 내용과 개념들에 대한 쉬운 설명 덕분에 학습에 도움이 되었습니다.

저도 잘 이해가 안 가는 부분들을 질문하여 남들에게 도움이 줄 수 있는 자세에 대해 배웠습니다.

(참고 글들)

-AI가 게임 프로덕트에 적용된 사례, AI(인공지능)‘퍼즐 봇’ - 홍태규(2013****54)

배운점 : AI가 게임에서 단순한 npc 역할을 하는 것을 넘어서 게임의 밸런싱에도 도움이 된다는 사실에 대해 알게 되었다.

이상구(LEE SANGGU)-6월 16일 오후 3:14

AI 로봇 인공지능 이 대체할 직업 ! 인공지능 작곡가 등장 ?

[출처] AI 로봇 인공지능 이 대체할 직업 ! 인공지능 작곡가 등장 ?|작성자 DESO

http://blog.naver.com/PostView.nhn?blogId=huihi68&logNo=221702278875

+plus : 사람이 했던 작업이 인공지능에 의해서 대체되는 미래는 멀지 않은 것 같았다.


-인공지능이 활양되는 분야(유전자 분석)-조완제(2016****76)

배운점 : 단 한 번의 유전자 분석으로 미래에 어떤 희귀병에 걸릴 가능성이 높은지를 알 수 있다면 발병을 예방하는 데 큰 도움이 될 것이다. 인공지능을 이용한 희귀병 예방과 그 이유에 대해 알게 되었다.


-인공지능의 발전(코딩을 해주는 인공지능)-마이크로소프트 빌드2020 소개-김승한(2012****19)

배운점 : 코딩을 해주는 인공지능에 대해 알게 되었고, 코딩의 구조에 대한 정확한 이해를 기반으로 인공지능을 수정하는 작업의 중요성 또한 알게 되었습니다.


-마이크로 소프트 AI lab projects 소개-김승한(2012****19)

배운점 : 그림을 변환 시켜주는 모델에 대해 새롭게 알게 되었습니다.


-New Data 처리서버, 성균관대 선형모델 연구실과 ㈜프로키언이 연구실 창업을 통해 협력하여 구축한 예

 -이상구 교수님(LEE SANGGU)

배운점 : 교수님이 올리신 내용들에 대해 실습해 보면서 판다스를 이용한 2차원 데이터 처리의 용이함을 확인했습니다.

<실습내용>

     

사이트 : http://math3.skku.ac.kr/

코드 :

import pandas as pd # dataframe 이라는 2차원 테이블 데이터 구조를 만들수 있는 라이브러리

import matplotlib.pyplot as plt # 자료를 차트(chart)나 플롯(plot)으로 시각화 해주는 라이브러리

import seaborn as sns # matplotlib기반 데이터 시각화 라이브러리

from sklearn.datasets import load_boston # scikit-learn에서 제공하는 boston 부동산 데이터

boston = load_boston() # boston부동산 데이터 로드

dfX = pd.DataFrame(boston.data, columns=boston.feature_names) # boston data로부터 데이터 재가공

dfy = pd.DataFrame(boston.target, columns=["MEDV"])# boston data로부터 데이터 재가공

df = pd.concat([dfX, dfy], axis=1) # dfX와 dfY데이터 병합 axis=1은 인덱스에 맞게 데이터를 옆에 붙인다.

df.tail() # 병합된 데이터를 뒤에서부터 5개 출력해준다.

cols = ["MEDV", "AGE", "RAD"] # 시각화 할 column 추출

sns.pairplot(df[cols]) # 지정한 플롯들을 한번에 보여주는 함수

plt.show() # 플롯 출력 명령문


-sigmoid 함수에 대해서, &hidden layer를 활성화 시키는 함수로 ReLU라는 활성화 함수를 사용하는 경    우^^ - 민재필(2015****15)

배운점 : 교재에 나온 sigmoid함수와 hidden layer에 대한 심화적인 내용을 다루는 자료였습니다. 그리고 sigmoid 이후에 나온 ReLU함수에 대해서도 알 수 있었습니다.


-퍼셉트론에 대한 정리-김예훈(2020****54)

배운점 : 퍼셉트론의 기반과 내부 메커니즘에 대해 자세히 알 수 있는 좋은 자료였습니다.


-PCA를 바이오 데이터 분석에 사용하는 예 –민재필(2015****15)

배운점 : 바이오 데이터 분석에 PCA를 적용하는 이유와 구체적인 방법에 대해 알게 되었습니다. 특히 그래프가 있어서 한눈에 알아 보기 편했습니다.

1. Principal components capture the most variation in a dataset

2. PCA deals with the curse of dimensionality by capturing the essence of data into a few principal components.


3. Dimensions vary in the weights they have on each principal component.


-PCA 주성분에 대한 질문 – 민재필(2015****15)

배운점 : PCA의 첫 번째 주성분의 분산을 가장 maximize 하는 이유에 대해 알게 되었습니다.

이상구(LEE SANGGU)6월 11일 오후 2:22

원래 데이터의 성질을 가장 잘 보존하면서 차원을 낮추려면,당연히 영향이 큰, 즉 ... 데이터가 분포되어 있는 상황을 가장 잘 표현하는 것들을 우선하여 생각하는 것이 가장 합리적이므로1. 분산이 큰 요소들을 우선 순위를 주어 그 순서대로 Principal Component 의 순서를 주어 배열하는 것이 가장 합리적이기 때문입니다. 그래야 주요 상관관계는 충분히 남아있고 ... 상관관계가 별로 없는 변수 들에 대응하는 축들은 무시하거나 하나의 축으로 묶어서 처리하고 ... 차원을 많이 줄여주는 것입니다.2. 이는 SVD 에서 크기가 가장 큰 singular value 들을 주 대각선의 위쪽에 크기순으로 배열하는 것과 마찬가지 이유입니다.3. SVD 와 마찬가지로 ... 차원을 줄일 때도 ... 아래 singular value 들이 영인 것과 아주 작은 것들을 우선 무시하면서 행렬 사이즈를 줄이는 것과 같은 이유입니다.그럼 그 후 계산 시간은 엄청 빨라지면서도 ... 원래 데이터의 성향을 거의 그대로 보존하는 것 이랍니다.이 중요한 축 들이 ... SVD 의 앞에 있는 큰 크기의 singular value 들 이 하는 역할을 한다고 생각하시면 이해가 쉬울 것입니다.

-ANN 인공 신경망 by 성대 학생 지난 학기 개발한 코드-이상구 교수님(LEE SANGGU)

배운점 : 파이썬 코드를 이용하여 털과 날개의 유무에 따라, 포유류와 조류를 분류하는 신경망 모델을 작성하는 모습을 보고 코드를 작성하는 방법이 그렇게 어렵지 않다는 느낌을 받았습니다. 저도 이를 이용하여 간단한 분류를 할 수 있는 코드를 짜 보았습니다.


4. 다른 동료들로부터 무엇을 배웠는가? 

  고학번 학우분들이 많기에 그들의 앞선 수학적 지식에 감탄했고 특히 열정적으로 문의게시판 활동을 하는 학우들의 열정에 대해서는 박수를 보내고 싶다. 단순 코딩입력이상수준으로 응용하는 그들의 모습에 항상 감탄했다.

3월 모르는 문제에 대해서 주저없이 질문하는 그런 자세입니다.


4월 모르는 문제에 대해서 주저없이 질문하는 자세, 교재를 활용하여 적극적으로 문제를 변형하여 풀고 올려서 확인받는 여러 가지 절차들을 배웠습니다. 기존의 방식을 고집하여 다소 비효율적으로 질의응답을 하였으나 온라인 교재를 활용하여 앞으로 더 효율적인 학습을 하는 방법 또한 알게 되어 기쁘게 생각합니다.


5월 (1) 5월이 되니 이 수업에 대해 뜻이 없는 학생들이 정리가 되고 뜻을 갖고 열심히 임하는 학생들이 눈에 띄는데 수업의 본질을 깨달아 변형 문제를 올리고 코딩을 더 깊이 이해하고 공유하는 몇몇 학생들이 보입니다. 3, 4월에는 제 질문과 그에 대한 학습 위주로 하였는데 다른 사람의 글을 이해하고 그에 대한 생각을 나누고 생각을 발전시키고 하니 서로의 이해의 폭을 공유할 수 있어 더 깊고 더 넓은 학습이 가능하다는 것을 배웠습니다.


(2) 이번에도 QnA에서 많이 배운 것 같습니다. 다른 사람들의 글에 댓글을 달면서, 교재에 나온 개념들을 간단히 정리해서 올리신 글은 물론, 교재에는 정확히 나와 있지 않은 관련 심화 개념들을 정리한 글, 그리고 교재에서 나온 개념들을 이용한 문제 풀이 등 배울 것들이 많았습니다. 특히 개념들을 정리한 글을 보고, 어떻게 개념을 정리하는 것이 가장 효율적인지를 알 수 있었습니다.


3주차 막바지에 수강을 신청했기에, 아직 다른 동료들과 상호작용을 하지는 못하였습니다. 그래도 Q&A를 읽어보면서, 제가 미처 생각하지 못했던 부분을 발견할 때도 많았습니다. 예를 들어, 전치행렬에 대한 증명 내용을 보면서 저도 이 부분에 궁금증을 느껴, 직접 전치 행렬의 성질을 탐구해보았습니다. 이러한 상호작용으로부터 얻을 수 있는 깨달음을 위해 조속히 진도를 따라잡아서, 활발하게 질문과 답변을 하도록 노력하겠습니다.

직접 동료들과 소통을 하고 난 후에, 깨달은 바가 많았습니다. 열정적인 몇몇 동료분들 덕분에, 제가 제시했던 내용에 오점이 있다는 것을 찾고, 그것으로부터 배움을 얻을 수 있었습니다. 또한 저도 동료분들에게 정보를 공유함으로써 나름의 성취감을 느끼기도 하였습니다.

빅데이터와 인공지능을 학습하면서 깊게 이해하기 힘든 부분들이 많았는데, 많은 동료분들께서 문의게시판에 이미 어려운 개념들을 여러 개 질문해주신 덕분에 빠르게 이해할 수 있었습니다. 이렇게 자신은 물론 다른 사람들도 잘 이해가 안 가는 질문들을 빠르게 물어보는 것을 저 또한 배워야겠다고 다짐했습니다.

 

 빅데이터와 인공지능을 기반으로 한 AI의 사용을 실생활에서 살펴보고 그에 대해 학습해 나갈 것이다.

 

5. 새롭게 배운 내용을 실제 생활에 어떻게 적용할 것인가?

 

    수학개념을 실생활에 적용하기에는 지식수준이 아직은 고급적이지는 않다고 생각한다. 이후 진로 측면에서 볼 때 교사나 강사로서 활동할 지도 모르지만, 우선은 코딩 작업결과 얻게되는 시각 자료로서 다른 수학과목에 대하여 도움이 되도록 활용 해보고 싶다. 코딩을 자유자재로 활용하는 수준까지는 꼭 되고싶었는데 많이 아쉽다.

   3월 여러 실험을 할 때 데이터에 대한 경향성을 식으로 나타낼 필요가 있을 것인데, 최소제곱해에 관한 이론을 활용한다면 매우 효율적으로 나타낼 수 있을 것으로 생각합니다.


4월 모든 생활에 있어서 효율이 가장 중요시되는 때입니다. 경사하강법, 극대 극소와 나아가 최대 최소 문제, 최소제곱해의 문제를 활용하여 가장 효율적인 해를 구하는 일들이 쉽고 빠르게 가능할 것 같습니다.


5월 (1) 주식 투자, 코로나와 같은 감염병의 확산 등 예측에 있어서 활용이 가능할 것 같습니다. 통계가 주어진 데이터를 분석하는 것의 의미도 있지만 미래를 예측하고 그에 대한 전략을 세우는 기능이 인공지능에 있어서나 다른 분야에 있어서나 매우 중요해지는 시대이기 떄문에 미래 예측에 있어서 아무래도 압도적으로 많이 쓸 것 같습니다.


(2) 확률과 통계는 실생활에서 정말 많이 쓰일 것입니다. 특히 통계 분야는 말할 것도 없이 기업이라면 언제나 사용할 것입니다. 확률 분야 또한 투자는 물론 카지노까지 다양한 곳에서 쓰일 수 있습니다. 특히 빅데이터를 다룬다면 확률과 통계의 중요성은 이루 말할 것도 없이 중요합니다. 통계의 결과를 바탕으로 원하는 결과를 얻을 확률이 가장 높은 것을 찾아내야 하기 때문입니다.


본 강좌의 주제가 ‘인공지능’인 만큼, 프로그래밍을 하면서 ‘Sagemath’ 프로그램을 적극적으로 활용하려고 합니다. 실제로 현실적인 문제를 수학적으로 모델링할 때, ‘Sagemath’를 사용한다면, 더 수월하게 작업을 이행할 수 있을 것 같습니다. 예를 들어, 회로의 전류를 분석하고자 할 때, 키르히호프의 법칙에 근거하여 행렬이 사용됩니다. 이러한 회로 모델을 ‘Sagemath’를 통해 더 간단하게 프로그래밍할 수 있을 것입니다.

이번에 R 언어를 학습하면서, R이 다양한 정보를 통계적으로 처리하는 데 있어서 유용하다는 점을 깨달았습니다. 그렇기 때문에, 몇몇 전문 통계자료를 요구하는 프로그램에 대하여, R언어를 포팅함으로써, 다른 언어들과 융합해서 사용을 해볼 것 같습니다.

 빅데이터와 인공지능은 실제 생활 이곳저곳은 물론 여기에 쓰일까 싶은 것들에도 유용하게 사용될 수 있기 때문에, 인공지능을 사용하기 적합하다고 생각되는 곳이라면 어디든지 사용될 것이다. 특히 인간의 사고를 바탕으로 하는 일들 중 단순한 축에 속하는 일을 대체할 가능성이 높다.

 

part4는 앞선 단원에서 부족했던 만큼 가장 열심히 QnA에 참여하고 comment를 달았기 때문이다.


6. QnA 활동에서 자신의 역할과 기여도에 대한 평가(자신의 활동에 점수를 주고 그 이유를 적으세요.) : 

  

     열정적으로 활동하는 다른 학생들을 보면 그들의 코딩활용경험에 항상 감탄한다. 이러한 코딩에 대한 경험이 어느정도 있기에 가능할 것이다. 반면 나는 이러한 경험이 거의 없기에 적극적인 코딩활용은 하지 못하는 상태이다. 대신 교재에 기술된 개념에 대하여 곱씹어보고 심화적인 질문을 남기면 교수님이나 다른 학생들의 답글을 통해 이를 이해하게 되고, 또한 나와 같은 궁금증을 가진 학생들도 있을 수 있기에 이같은 개념에 대한 의문점 해소에 조금이나마 도움이 되었을 거라고 생각한다.

    내가 주로 남긴 질문들은 학습내용의 심화적인 부분이라기보다는 단순개념의 이해 및 과제나 학습수행에 있어서의 어려운 점에 대한 고민상담이었다.


3월 평가 점수 : 80 점

이유 : 가장 열심히 참여하였지만, 코딩에 대한 실습 참여가 부족하였고 다른 학생들의 질의응답에 더 적극적이지 못했습니다.


4월 평가 점수 : 70 점

이유 : 가장 열심히 참여하였지만, 온라인 교재를 활용하여 질문을 올리는 방법이 아직 미진한 부분이 있었고, 다른 학생들의 질의응답에 대해 아직까지도 신경을 많이 못쓴 것이 후회가 남습니다.


5월 평가 점수 : 80 점

이유 (1) : 지난달에 비해서는 확실히 참여하는 비율이 늘었습니다. 댓글을 다는 것은 물론 매주 글을 써왔습니다. 다만 쓰는 글의 종류가 일정했다는 아쉬움이 있는데 이를 고쳐야겠다고 생각했습니다.


이유 (2) : 학생들은 점차 더 열정적으로 참여한 데에 반해 저 스스로는 이 수업에 대한 투자가 많이 줄어들었던 아쉬운 5월이었습니다. 다른 과목들의 무거운 과제들이 많아져서 상대적으로 신경을 많이 못 썼던 것도 있고, 그동안 한 분량이 많으니 좀 쉬엄쉬엄하자는 마음이 은연중에 들어왔던 것이 과해져서 좀 게을러졌던 측면도 있습니다. 6월에 마무리할 4단원이 이 과목의 궁극적 목적일 될텐데 진정한 이 수업의 의미를 완성시키는 6월로 마무리해보자고 다짐해봅니다.



- 몇 가지 의문점과 깨달음을 정리해 놓은 것을 제외하고는 아직까지 크게 기여한 부분이 없어서, 50점으로 스스로를 평가하였습니다. 추후에 진도를 따라잡아서 Q&A활동에 기여하도록 노력하겠습니다.

-  초반에 했었던 것 보다는 적극적으로 참여했다고 생각합니다. 그래서 80점으로 저 스스로를 평가하였습니다.

-  아쉽게도 이번에는 개념을 배운 것에 비해 많은 질문을 하지 못했다. 그래도 댓글로써 자주 참여하는 모습을 보이긴 했다.


7. 다른 학생에 대한 평가

 

궁금한 것들에 대해 많은 질문을 해주시고, 개념에 대해 추가적인 질문들을 통해 보충해주셔서 고마웠습니다. 또, 전혀 몰랐던 내용에 대해서도 소개해주셔서 감사했습니다. 이 보고서 작성 중 다른 학생에 대한 서술을 해야할 부분이 있는데 거기서 구체적으로 기술하겠지만, 열정적인 탐구활동을 하는 몇몇 학생들의 모습은 본받고 싶을 정도이다. 단 이러한 활발한 활동을 펼치는 학생들의 수가 적다는 것이 아쉽다.


3월  코로나 19사태로 어수선한 가운데서 온전히 참여하는 학생과 그렇지 못하는 학생으로 초반에 갈렸는데, 교수님의 강의 방식에 적응하지 못한 학생들이 꽤 많았던 것 같습니다. 이제 대부분의 학생들이 QnA에서 활발한 활동을 펼쳐가고 있고, 주저없이 토론하는 분위기가 형성이 되었기에 매우 바람직한 모습으로 생각하고 있고, 다변수함수의 미적분학 파트에서 더욱 많은 것을 배울 수 있을 것 같아 기대가 됩니다.


4월  요즘에는 질의응답 게시판에 청강생의 글이 많이 보입니다. 학부생 뿐만 아니라 대학원생 직장인 등 다양한 사람들이 청강하러 모여드는 모습을 볼 수 있는데, 다들 바쁜 가운데에서도 배우려는 의지가 대단하구나 하는 것을 느꼈습니다. 더군다나 인공지능이 중요해지는 요즘의 때, 고등학생들도 곧 인공지능을 배운다고 하는데 배우지 않는 사람은 점차 도태되어 갈 수밖에 없는 세상에서 생존하기 위해 몸부림치는 그런 모습 또한 볼 수 있었습니다.


5월 (1) 다른 학생 분들은 예전보다도 훨씬 왕성하게 활동하고 있기 때문에, 제게 있어 매우 큰 자극이 되어 주십니다. 여러 개념들을 정리해 주시는 분도 계시고, 학습한 개념들을 이용해 문제풀이를 해주시는 분도 계시는 등 다양한 분들이 다양한 도움을 주십니다. 여러 학생분들보다도 더 열심히 노력해서 큰 점수를 받을 수 있도록 노력하고 싶습니다.


(2) 황인성, 김예훈, 민재필, 김용훈, 조완제 학우 등 문의게시판에 가장 적극적인 학생들이 이제 어느 정도 추려진 모습입니다. 기존에 알고 있던 인공지능, 프로그래밍의 지식을 학생들과 공유하며 학생들의 학습을 돕는 경우도 있고 학생들이 주체가 되어 만들어가는 수업의 모습, 체계가 갖추어지는 것 같습니다. 상대적으로 저 스스로가 더 발전되지 못한 것 같아서 아쉽긴 하지만 위 학생들 덕분에 6월의 수업이 더 기대됩니다.


Q&A를 읽어보면서, 수학에 열정적인 분들의 글을 보았습니다. 아직 학습하지 않은 부분이라서 이해하는 데는 어려움이 있었지만, QR 분해와 최소제곱문제와 같은 낯선 개념이 어떤 내용인지, 그리고 어떠한 양상으로 전개되는지를 이해하는 데는 도움이 되었습니다. 수학에 열정적인 분들이 많은 만큼, 그에 상응하여 열심히 Q&A 활동을 하여 그 열정을 공유해보고 싶습니다.

 

Q&A 활동에 참여하면서, 동료분들의 열정을 다시 확인할 수 있었습니다. 이러한 동료분들이 있어서, 저 스스로도 수학에 힘쓰고자 하는 열정이 생깁니다.

 저보다도 자신이 궁금한 것들을 질문하는 것은 물론 질문한 개념에 대해 정리한 후 다시 글을 올리시는 모습이 정말 존경스럽기까지 했습니다. 정말 대단하다고 생각하며 저 또한 그 자세를 본받고 싶습니다.

 

Self Evaluation 2. (개인 성찰 노트 2) (학생용)

 

과 목 명

인공지능을 위한 기초 수학

이  름

 김예훈 등

학 과

 전자전기공학부

평가항목

전혀

아니다

아니다

약간

아니다

약간

그렇다

그렇다

매우

그렇다

1.

온라인-오프라인 출석을 규칙적으로 하였다.

 

 

 

V

 

 

2.

QnA에 적극적으로 참여하였다.

 

 

 

V

 

 

3.

QnA 내용에 적합한 질문과 응답을 하였다.

 

 

 

V

 

 

4.

동료에게 도움이 되는 지식과 정보를 제공하였다.

 

V

 

 

 

5.

다른 동료의 의견을 존중하였다.

 

 

 

 

V

 

6.

QnA 운영 및 의견수렴과정에 긍정적으로 기여하였다.

 

 

 

V

 

 

7.

이번 강좌의 동료와 다른 수업도 듣고 싶다. 

 

 

 

V

 

 

[의견] 


  ▶ 자체평가에 따른 잘한 점

QnA에 자주 참여했으며, 출석을 빠짐없이 했습니다.

또, 문의게시판에 올라온 내용은 모두 꼼꼼히 읽어보고 모르는 내용은 찾아가며     공부했습니다.

 

3월 기존에  수님의 선형대수학을 수강하면서 파악한 교수님의 강의 스타일과 저의 호기심 등을 결합하여 QnA 게시판에 누구보다도 열심히 적극적으로 뛰어들었기에 초반에 좋은 점수를 올릴 수 있었습니다.


4월 기존에 교수님의 선형대수학을 수강하면서 파악한 교수님의 강의 스타일과 저의 호기심 등을 결합하여 QnA 게시판에 누구보다도 열심히 적극적으로 뛰어들었기에 초반에 좋은 점수를 올릴 수 있었습니다. 나아가 자신있게 쌓아올린 선형대수학 지식을 미적분학에 결합시킴으로 더욱 깊은 수학적 이해를 이루어낼 수 있어서 좋았습니다.


5월 (1) 다른 기간들보다도 QnA에 열심히 참여했습니다. 다른 학우 분들의 질문에도 답을 해 주었고, 여러 유용한 글들을 쓰려고 노력했습니다. 그리고 다른 분들이 쓴 글에도 댓글을 달면서 열심히 참여했습니다.


(2) 통계 부분은 고등학교 때 적분과 통계라는 과목 이름으로 수학을 배운 이후로는 처음 접하는 바입니다. 정확한 개념 이해와 적용 위주로 공부했어서 이해하는 데에 크게 어렵지 않았고 곧잘 수업 내용을 따라갈 수 있었습니다. 이번에는 3, 4월에 미흡하였던 다른 학생들의 QnA에 어느 정도 참여하고 보탰다는 점에서도 의미가 있었습니다.

 

이전보다는 나름대로 Q&A에 규칙적으로 참여하고, 수업 진도도 따라잡았다는 점에서 저 스스로 잘했다고 생각합니다.

 이번에도 저번 달과 같이 QnA에 자주 참여했으며, 출석을 빠짐없이 하고 혼란스러울 수 있는 개념에 대해 질문하는 등 학생으로서 QnA에 열심히 참여하는 자세를 보여주었다고 생각한다. 그리고 문의게시판에서 저보다도 더욱 적극적으로 활동하시는 분들이 많아서, 그런 분들과 다른 수업을 들을 때 서로 협업한다면 큰 도움을 받을 수 있고 또한 큰 도움을 드릴 수 있다고 생각합니다.

 

 ▶ 자체평가에 따른 아쉬운 점

3월 스스로의 생각에 몰두한 나머지, 다른 학생들의 토론 진행상황에 대해서는 다소 면밀히 살피지 못한 것도 있는데 그것이 아쉬움으로 남습니다.


4월 스스로의 생각에 몰두한 나머지, 다른 학생들의 토론 진행상황에 대해서는 다소 면밀히 살피지 못한 것도 있는데 그것이 여전히 아쉬움으로 남습니다. 그리고 이번에는 학기에 한창 접어들다보니 학습 시간을 규칙적으로 분배하지 못한 점도 있어서 아쉽습니다.


5월 (1) QnA에 자주 참여한 것은 맞지만, 제가 적은 글들은 그 유형이 비슷한 경우가 많았습니다. 아무래도 질문보다는 문제 해설 위주의 글을 쓰다보니 그렇게 된 것 같습니다. 다음 달에 배우는 것은 정말로 새롭게 배우는 개념들일텐데, 마지막 달에는 질문하는 글을 많이 써야 할 것 같습니다.


(2) 다른 과목이 더 무거워졌다, 시간이 없어졌다 등의 핑계로 수업을 규칙적으로 수강하지 못한 부분도 있고 QnA에 먼저만큼 신경쓰지 못한 점들이 분명히 있었습니다. R에 대해 Sage만큼 이해하고 활용하는 연습도 많이 부족하였고 하여 솔직히 Part 1, 2만큼 3을 잘 익혔다고 말하기는 어려울 것 같습니다.


이전에 학습이 덜 된 부분이 있어서, 그 부분을 넘겨서 다음 부분을 하고 있는 것이 약간 아쉬웠습니다.

지난 달과 같이 QnA에 스스로 질문하는 횟수 자체는 좀 줄어든 감이 있다. 물론 이번에는 16주차에 대해 생각하지 않기 때문에 비율만 보면 올랐다고 생각할 수 있겠지만, 이번 인공지능 파트는 개념 하나하나의 밀도가 높기 때문에 질문할 요소가 많지만, 정작 나는 질문을 많이 하지 못한 것이 아쉬운 점이다.

PCA에 대해 학습하면서 아쉬운 점은 잘 이해가 안간다는 점이였습니다. 반복적으로 살펴보고 다양한 자료들도 찾아 보았습니다만 부족한 점이 있었습니다.  PCA의 수행방법과 결과에 대해서는 이해를 하였지만 그 과정은 상세하게 이해하지 못했습니다. 앞에서 나온 경사하강법에 대한 이해가 부족한 탓 인 것 같았습니다. 한번 더 part1에 대해 꼼꼼히 공부를 해봐야겠다고 다짐했습니다.

 

Self Evaluation 3. (개인 성찰 노트 3)  (학생용)

 

자신의 학습에 도움이 된 우수한/성실한 동 료 평 가

 

과 목 명

  인공지능을 위한 기초수학

 

 (두 명 이상의 추천을 받은 학생은 가산점)

피평가자(동료)

 김용훈, 김도현, 홍태규, 조완제, 신재열...

평가자(작성자)

 김예훈, 황인성, 나우주 ...

평가항목

전혀

아니다

아니다

약간

아니다

약간

그렇다

그렇다

매우

그렇다

1.

온라인-오프라인 출석을 규칙적으로 하였다.

 

 

 

 

V

 

2.

QnA에 적극적으로 참여하였다.

 

 

 

 

 

V

3.

QnA 내용에 적합한 질문과 응답을 하였다.

 

 

 

 

V

 

4.

동료에게 도움에 되는 지식과 정보를 제공하였다.

 

 

 

 

V

 

5.

다른 동료의 의견을 존중하였다.

 

 

 

 

V

 

6.

 

QnA 운영 및 의견수렴과정에 긍정적으로 기여하였다.

 

 

 

 

 

V

7.

 

이번 강좌의 동료와 다른 수업도 듣고 싶다. 

 

 

 

 

V

 

 

  [의견]

 

 ▶ 자체평가 중 잘한 점

(1) 주체적으로 조별 과제 활동을 계획하고 업무를 분담하는 데에 있어서 탁월성을 보였고 학생들이 어려워할 수 있는 몇가지 개념들은 일목요연하게 잘 정리한 것이 좋았습니다.

 

(2) Webex에 종종 참여하는 것은 물론 QnA에서도 글을 종종 쓰면서 이 과목에 대한 관심을 놓치지 않고 계속 성실히 참여하는 자세를 보여주고 있습니다.

 

매 주마다 그분의 글이 상단에 올라와 있는 것으로 보아, 주기적으로 열정을 가지고 참여하시는 분이라고 생각합니다. QnA활동을 조금이라도 해 본 학생이라면 누구나 봤을 학우임에 틀림없을 정도로 늘 한결같은 열정을 보여준다. 또한 개념에 대한 진술이 매우 깊이가 있어 마치 백과사전을 보는 듯 하다

인공지능을 위한 기초수학을 학습하는 데 있어 궁금한 점에 대해서는 언제나 동료들과 같이 이야기를 나누면서 해결하는 모습을 보였다.

홍태규씨는 문의게시판에 올린 글들은 많지 않았지만, 올린 내용에 대해서는 깊게 이해하고 있는 것 같았습니다. 또한, 궁금한 점에 대해 깊게 조사하는 태도가 훌륭했습니다.

  조완제씨는 문의게시판에 올린 글의 수도 많았고, 좋은 자료들을 올려주셔서 항상 참고하고 있습니다. 개념들에 대해서도 추가적인 설명해주셔서 고마웠습니다. 또, 내용에 대한 전반적인 이해가 깊은 것 같았습니다.

     

 ▶ 자체평가 중 미비점

(1) 조별 과제 활동에 있어 다른 학생들이 이해하기 어려운 소재여서 함께 활동을 진행하는 데에 어려움이 있었습니다.

 

(2) 다만 그 빈도가 아직까진 큰 점수를 받을 수 있는 수준이 아니기에, 앞으로 더 자주 Webex는 물론 QnA에 참여해야 할 것이라고 봅니다.

 없습니다.

 QnA에 자주 참여하는 모습을 보이지 못 했다는 것이 아쉬운 점이다. 질문하는 글도 글이지만, 댓글로라도 참여할 수 있는데 댓글로 참여한 것도 없다시피해서 아쉽게도 QnA 활동에 있어 좋은 평가를 받을 수 있을지는 미지수입니다.



Self Evaluation 4. (개인 성찰 노트 4) (학생용)


* 1~16 평가내용을 읽고 「매우긍정~매우부정」 중 하나에 V 표시하시오. 그리고 5, 12, 14번은 연결문항에 답하시오.

 

                       평가내용

           평가

매우

긍정

긍정

보통

부정

매우

부정

1. 우리 방식의 수업에 적극적으로 참여하였다.

 

V

 

 

 

2. 교수는 학생들의 능력을 발휘하도록 도와주었다.

 

V

 

 

 

3. 우리 방식의 학습 과정을 통해서 새로운 지식을 획득하였고 지식수준이 향상되었다.

V

 

 

 

 

4. 이 과정을 통하여 추론기술이 향상되었다.

 

V

 

 

 

5. 이 과정을 통하여 자기 주도적 학습기술을 습득하였다.

 

V

 

 

 

6. 이 과정을 통하여 문제해결기술을 습득하였다.

 

V

 

 

 

7. 이 과정을 통하여 학습운영기술을 습득하였다.

 

V

 

 

 

8. 이 과정을 통하여 전문성이 향상되었다.

 

V

 

 

 

9. 이 과정은 실제 연구 상황과 유사하였다.

 

 

V

 

 

10. 학습과정에 대한 평가 방법이 합리적이었다.

V

 

 

 

 

11. 문제해결을 하면서 학습주제를 더 잘 알게 되었다.

 

V

 

 

 

12. 학습과정에서 학습주제와 관련한 활발한 의사소통이 이루어졌다.

 

 

V

 

 

13. 학습결과는 문제해결절차를 통해서 산출되었다.

 

V

 

 

 

14 전반적으로 우리 방식의 수업이 효과적이라고 생각한다.

 

V

 

 

 

15. 우리 방식의 수업에 다시 참여하고 싶다.

 

V

 

 

 


* 5, 12, 14 연결문항

 

5-1. 본 수업을 통해 자신이 습득한 자기 주도적 학습 기술을 구체적으로 설명하시오.

 

특별한 기술이라기보다는 ‘꾸준한 관심’이라는 태도라고 생각한다.

    해당 주차에 주어진 학습내용에 대한 관심이 있어야 그에 대학 학습 및 문의게시판을 통한 교수님과 다른 학생들과의 소통활동까지 이어질 수 있다.  교재를 통한 학습과 병행해서 교수님이 제공하시는 유튜브를 이용하여 학습하였다. 그리고 빅데이터와 인공지능에 대한 학술자료들을 찾아보며 공부했다. 또한, QnA에 인공지능의 다양한 적용사례들과 심화적인 내용들을 다뤄주시는 분들의 글이 있어서 글들을 읽고 comment를 달면서 학습하였다. 인공지능에 대한 책들을 시중에 많이 나와있어서 그 중 베스트 셀러중 하나인  ‘인공지능과 딥러닝(인공지능이 불러올 산업 구조의 변화와 혁신)’이라는 책을 참조하였다.

3월

주어진 문제 소재에 대하여 나만의 언어로 일목요연하게 정리하며 익히는 학습 기술


4월

주어진 문제 소재에 대하여 나만의 언어로 일목요연하게 정리하며 익히는 학습 기술, 다른 학생들의 질문에 대해 사고를 확장하여 논의를 심화시키는 학습 기술


5월

(1) 다른 학생들의 질문을 검토하고 이해하여 논의를 심화시키고 완성시키는 학습 기술. 인터넷에서 자료를 인용하여 스스로의 학습에 도움을 얻는 기술.


(2) 강의와 교재 간의 비교를 통한 개념 학습을 하였고, 과거의 자료를 찾아보며 부족한 개념을 보강하여 학습했으며, 인터넷에서 알고 싶은 기존 개념들과 심화 개념들을 직접 찾아보며 스스로 학습하는 자세를 배울 수 있었습니다.


Q&A에 질문을 올리기 위해서는 저 스스로 교재에 대한 학습이 이루어져야 한다고 생각합니다. 이러한 생각으로, 교재를 학습한 곳 까지 미리 정리해둡니다. 이러한 과정에서 Q&A에 올릴만한 주제가 떠오르며, 그러한 생각을 작성해서 올립니다. 이것이 습관이 되어 일종의 자기 주도적 학습 기술이 된 것 같습니다.

이번에는 다른 경우와 다르게 책을 좀 많이 찾아본 것 같다. 인공지능과 관련된 책이 있어서 스스로 공부할 때 많이 참고했다. 인터넷에서 구하는 디지털 자료 말고도 책과 같은 실재하는 자료들도 꼭 필요하다는 걸 깨닫게 되었다.


12-1. 본 수업과정에서 자신이 참여한 활발한 의사소통을 구체적으로 설명하시오.

 

교재를 정독하면서 조금이라도 의문점이 생기거나 이해가 되지않아 앞으로 나갈 수가 없을 때 즉시 이에 대한 질문을 문의게시판에 작성한다. 교수님 뿐만 아니라 다른 학우들도 적극성을 보이며 답을 해주기에 이 부분이 매우 흥미롭다. 단, 개념에 대하여 너무 깊이 들어가는 것은 이 강좌의 Goal에 맞지 않으므로 이에 대한 점검도 교수님께 받을 수 있도록 질문을 남기는 것이 좋다고 생각한다. QnA에서 글을 많이 적지는 못 했으나, 댓글로라도 많이 참여했다. 교수님께서 올리신 정보글에도 댓글을 달고 다른 학생분들이 올리신 글에도 댓글을 달며 성실하게 참여했다. 물론 나 또한 QnA에 글을 올렸다. 공분산행렬에 관한질문과 라그랑주 승수법을 실습하는 과정에 대한 글을 올렸다.

3월

궁금한 점에 대해 주저없이 QnA에 올리는 일


4월

궁금한 점에 대해 주저없이 QnA에 올리는 일, 다른 학생들의 질문에 참여하는 일, 교수님의 WebEx 미팅 요약, 수업에 대한 건의


5월

(1) 궁금한 점에 대해 QnA에 올리기, 다른 학생들의 질문에 참여하고 질의응답을 완성, 교수님의 WebEx 미팅 요약


(2) QnA에서 학습했던 개념들을 이용해 문제를 푸는 방법들을 소개했으며, Webex에 매주 참여하는 등 활발하게 활동하였습니다.


 주로 Q&A에 문제를 만들어서 올리거나, 개념이나 정의에 대하여 탐구하고, 교재에 있는 오류를 올리는 활동을 하였습니다. 그중에서도 개념이나 정의에 대하여 탐구하는 활동에 활발히 참여하였습니다.

비록 QnA에서 글을 많이 적지는 못 했지만 그래도 댓글로라도 많이 참여했다. 교수님께서 올리신 정보글에도 댓글을 달고 다른 학생분들이 올리신 글에도 댓글을 달며 성실하게 참여했다. 물론 나 또한 QnA에 글을 올렸다. 인공지능의 학습 종류에 대하여 질문했다.


14-1. 우리 방식의 수업에서 효과적이었다고 생각되는 부분을 구체적으로 설명하시오.

이미 AI의 시대에 접어들었다고 생각한다. AI기술과 수학지식을 접목하여 사회적으로 발생하는 문제에 이를 활용할 수 있다. 당장 지금까지도 세계적으로 공포를 떨치고 있는 코로나 바이러스에 대해서도 이러한 기술을 활용할 수 있는 부분이 있음을, 교수님께서 올리신 참고자료를 통해 알게 되었다. 이러한 기술 활용에는 반드시 이에 관한 교육과 학습이 필요하다. 언제까지나 미래의 일이라며 미룰 수 없다.

     이 강좌가 바로 이러한, 새롭게 요구되는 학습태도의 선구자 역할을 한다고 본다.

     하얀 백지에 흑연으로 그래프를 그리고 식을 쓰는 방식으로만 수학을 학습하는 시대가 아닌 실생활에 조금 더 가까이 가서 문제해결에 도움이 되는, 실용적인 면이 강화된 학습태도를 갖추도록 하는 것이 이 강좌의 핵심이고 가장 효과적인 부분이라 생각한다.

 가장 인상깊은 부분이자 효과적이라고 생각되는 부분은 QnA였다. 이런 형태의 수업을 처음 접해보았는데 다른 수업에 비해 학생들이 수업에 참여하는 열정도 굉장히 높았다. 또, 교수님께서 학생들의 의견과 글들에 댓글을 열정적으로 달아주시는 모습이 인상깊었다. 그리고 매주 금요일 오전에 Webex를 통해 실시간으로 질문사항들에 답해주시고, 공지사항을 전달해주시는 모습을 보면서 수업전체가 하나의 축구팀 같았다. 코치와 선수들이 서로 의견을 나눠가면서 하나의 골을 향해 나가는 모습을 보는 것 같아 인상깊었다.

3월

배웠던 것에 대해 복습하는 것은 학습의 기본이지만, 바쁜 생활 속에 쉽지만은 않은 것이 현실입니다. 그러한 복습이 상당한 평가요소로 작용하여 복습을 안 할 수 없는 시스템이 매우 좋았습니다.


4월

배웠던 것에 대해 복습하는 것은 학습의 기본이지만, 바쁜 생활 속에 쉽지만은 않은 것이 현실입니다. 그러한 복습이 상당한 평가요소로 작용하여 복습을 안할 수 없는 시스템이 매우 좋았습니다. 그리고 일반적인 수업에서는 질문을 많이 하고 싶어도 여러 제약 때문에 하지 못하는 일이 많은데, 문의게시판을 활용하여 언제 어디서라도 질문을 잊지 않고 바로바로 할 수 있는 데다, 교수님께서 적극적으로 자주 게시판을 보시기에 누락 없는 학습이 가능한 것이 매우 좋았습니다.


5월

(1) 많은 학생들에게 QnA 참여를 독려하면서 자습의 효율성을 증가시켜 줍니다. 또한 적극적인 교수님 덕분에 모르는 개념을 손쉽고 빠르게 알 수 있었습니다. 그리고 매주 Webex를 통한 소통이 있어 교수님께서 매주 도움을 주시며 과목 학습에 큰 도움이 되셨습니다.


(2) 이번 한 달은 교수님께서 학생들에게 더욱 수업 운영을 맡기신 한 달이었던 것 같습니다. 교수님께서는 학생들이 논의를 발전시킬 수 있는 힌트만 몇 가지 던져 주시고 구체적인 논의는 뜻이 있는 학생들 사이에서 더욱 활발히 진행되었던 한 달인데, 학생들이 같은 배우는 입장에서 활발한 토의가 가능한 이 시스템이 짧은 시간 안에 많은 것을 배울 수 있는 매우 효과적인 시스템이라고 생각합니다.


Q&A로 동료들과 소통하는 방식이 학습에 있어서 효과적인 방법이었다고 생각합니다.

역시 QnA가 제일이라고 생각한다. QnA에 글을 올리면 수 시간 내에 교수님이 유익한 대답을 해주시는데, 이는 다른 수업과 비교할 수 없을 정도로 빠른 시간이다. 그만큼 이 과목에서는 QnA가 가장 활용성이 높다. 또한 매주 금요일 Webex를 통해 온라인 질의 및 공지사항을 알려주시는 등 온라인 수업 또한 높은 수준을 보여준다.


20. 이 수업에서 보완해야 할 점은 무엇이라고 생각합니까?

     딱히 없었음.. 수준높은 수업이라고 생각한다.

3월 QnA에서 뿐만이 아니라, 수시로 소통할 수 있는 수단이 있으면 더 좋을 것 같습니다.


4월 정보가 조금 더 정리될 필요는 있어 보입니다. 내용은 많은데 정보가 한 눈에 안 들어오는 경우가 많아서 간혹 놓치고 가는 일들이 있습니다.

5월  (1) 기존 수업 방식 그대로 유지해도 괜찮을 것 같습니다.


(2) Sage는 굉장히 직관적이고 프로그래밍 서술 방식이 상세해서 보고 바로 이해하는 것이 가능합니다. 하지만 R 언어는 더 함축적인 것 같습니다. 교재에서 R 언어를 활용할 때 Sage와는 많이 다른 R 언어에 대한 설명이 더욱 더 구체적이어야 할 것 같습니다.


(3) 어느 강좌든 소극적으로 참여하는 학생들도 존재할 것입니다. 우리 반의 그러한 학우들도 좋은 점수를 받을 수 있는 3rd Chance 방법이 있으면 좋을 것 같습니다.


나 같이 코딩경험이 거의 없는 학생이 겪을 수 있는 문제점에 대하여 조금 더 자세한 지침서 같은 자료들이 있었으면 좋겠다. 또한 보고서 작성 시 그래프를 싣기가 쉽지 않은 점에 대하여 스스로의 힘으로만 해결하기가 힘든 것 같다.

   딱히 없다고 생각한다. 레포트 과제를 매달 하면서 개념을 복습시켜주시기 때문에 충분히 좋다고 생각한다.

 

 

Participation [참여 평가 1] PBL report Due: May 30th, 2020


담당교수 또는 다른 학생들이 QnA에 업로드한 10개 이상의 자신의 Comment or Answer 를 주시오.


 (1) State more than 15 Math Definitions and concepts what you learned in the first 4 Chapters.


1. 기본 행 연산(Elementary Row Operation, ERO)
선형연립일차방정식이 꼴로 나타날 때 식의 위아래를 더하고 빼고 스칼라배 하는 것이 해집합에 영향을 주지 않는다는 사실로부터 출발한다. 식의 위아래를 더하고 빼고 스칼라배 하는 이 과정을 기본 행 연산이라고 한다.


2. 기약 행 사다리꼴(Reduced Row Echelon Form, RREF)
기본 행 연산을 진행할 때 가장 마지막 단계로서 Gauss-Jordan 소거법의 핵심을 이룬다. 정사각행렬의 역행렬이 존재할 때 기약 행 사다리꼴은 단위행렬이 된다.


3. 역행렬(Inverse Matrix)
어떤 정사각행렬에 대해 같은 크기의 정사각행렬을 좌우에 곱하여 단위행렬이 생성되면 이 곱한 정사각행렬을 주어진 정사각행렬의 역행렬이라고 한다.


4. 고윳값과 고유벡터(Eigenvalue and Eigenvector)
영벡터가 아닌 벡터 에 대하여를 만족할 때, 를 고윳값, 그에 대응하는 를 고유벡터라고 한다. 행렬의 대각화, 이차형식의 주축정리, 미적분학의 극대 극소 등 활용범위가 매우 넓다.


5. 일차독립(Linearly Independent)
개의 벡터 에 대하여
인 경우 를 일차독립이라고 한다. 에 대해 이외의 쌍이 존재한다면 이를 일차종속이라고 한다.


6. 미분계수
함수 에 대하여 극한값 이 존재할 때, 함수 에서 미분가능하다고 하며 이 극한값을 미분계수라고 하고 로 표기한다.


7. 최대, 최소의 정리
함수 가 폐구간 에서 연속이면 이 구간에서 반드시 최댓값과 최솟값을 갖는다.


8. Newton’s Method
고차방정식이나 비선형함수의 방정식의 경우 방정식의 해를 정확하게 구하는 것이 쉽지 않다. 이 때 해 근방의 근사값을 적당히 잡고 접선을 그어서 절편을 두 번째 근사값으로 잡은 후 다시 이 과정을 여러 번 반복하면 방정식의 해를 상당히 정확하게 구할 수 있다.


9. 적분에 관한 평균값의 정리
함수 에서 연속이면 안에 적어도 하나 존재한다.


10. 편미분
함수 에 대하여
가 존재하면 이것을 에 대한 편도함수라고 하고,
가 존재하면 이것을 에 대한 편도함수라고 한다.


11. 그래디언트
로 정의되며, 다변수함수의 미적분에서 가장 핵심적으로 활용되는 개념 중 하나이다.


12. Fubini의 정리
이중적분을 계산할 때, 적분영역이 직사각형인 경우 이 영역에서 함수 가 연속이면 에 대해 먼저 적분하고 에 대해 적분하는 결과와 에 대해 먼저 적분하고 에 대해 적분한 결과가 같다. 적분영역이 직사각형이 아니면 적분구간 상에 변수가 포함되므로 잘 보고 적분 순서를 정해야 한다.


13. Jacobian
일변수함수에서의 치환적분의 확장으로써 평면의 적분영역, 평면의 적분영역에 대해 계산할 때 상호 전환에서 곱해주어야 하는 인자이다. 편미분계수에 대한 행렬식으로 표현된다.


14. 방향도함수
함수 의 단위벡터 방향으로의 방향도함수는 로 바로 구할 수 있다. 일변수함수에서는 접선을 그을 수 있는 방향이 수직선상에서 증가하고 감소하는 두가지 방향으로 한정되어 있는데 이변수함수 이상에서는 방향이 무한대로 늘어난다. 편도함수는 독립변수의 증감방향으로 도함수를 정의한 것인데 이 편도함수들을 조합하여 모든 방향을 다룰 수 있다.


15. Fermat의 임계점 정리
함수 가 극대값 또는 극솟값을 가지고 이 지점에서 편도함수가 존재하면 편미분계수가 이다. 편미분계수가 인 점들은 극대값 또는 극솟값을 가질 가능성이 있는 후보들로써 극대, 극소를 판별하는 가장 첫 단계가 된다.


16. 공분산과 상관계수/모분산과 표본분산
확률변수 의 공분산(Covariance)은 다음과 같다.

그리고 의 상관계수(Correlation Coefficient)는 다음과 같이 정의된다.

일반적으로 모집단의 자료를 활용하여 분산 를 정의할 때, 간단히 말하면 편차의 제곱에 대한 기댓값으로 정의할 수 있다. 일변수 확률분포일 때 이 확률변수를 , 에 대한 기댓값을 라 하면 다음과 같이 나타낼 수 있다.

위의 식은 이산확률변수의 경우에 확률질량함수를 활용하여 도출해낸 식이며, 연속확률변수의 경우에 확률밀도함수를 활용하면 정의에 의해서 같은 식을 도출할 수 있다.
표본분산이란, 모집단 중에서 일부 표본을 추출하였을 때 표본평균 에 대한 각 표본 원소들의 퍼진 정도를 말하며 로 표시한다.

그런데 여기서 이 아니라 로 나눈 것이 특이한데, 그 이유는 일반적으로 표본평균에 대한 각 표본 원소들의 편차 제곱은 모분산보다 작기 때문에 대신 을 나누어 모분산에 더 가까운 값을 구하고자 함이다. 또한, 표본을 추출할 때마다 표본분산 값이 다르게 나오므로 이 표본분산에 대한 기댓값 또한 생각해볼 수 있다. 위와 같은 정의를 사용하면 표본분산의 기댓값이 모분산 값과 같아짐을 확인할 수 있다. 그러므로 위와 같이 정의하는 것이 더욱 타당하다.



17. 확률

(1) 수학적 확률

중요한 전제 : 일어날 수 있는 모든 경우, 사건 가 일어나는 모든 경우 각각이 일어날 확률이 같아야 한다(같은 정도로 확실해야 한다.)


(2) 기하학적 확률
인 영역 에 속하는 확률은


활용 예 : 과녁에 화살을 쏠 때 10점을 쏠 확률과 같은 문제에서 기하학적 확률이 활용된다. 수학적 확률에서 살펴본 전제와 같은 맥락에서 화살이 과녁 상의 모든 점에 맞을 확률이 동일하기 때문에 이 정의가 성립한다.


(3) 통계적 확률과 대수의 법칙
시행 횟수를 , 특정 사건 가 일어날 횟수를 라 하면, 이 한없이 커질 때 통계적 확률 는 일정한 값 , 즉 수학적 확률에 가까워진다.

주사위를 던져서 1이 나오는 경우에 대해 우리는 수학적 확률이 이라는 것을 알고 있다. 실제로 이것을 수백 수천, 수만번 시행해보면 이 나오는 비율이 전체 비율의 약 임을 확인할 수 있다. 신기한 것은, 앞에 나왔던 경향성이 앞으로의 시행에 대한 아무런 예측 정보도 제공해주지 못한다는 점이다(독립시행의 경우).


18. 확률질량함수
이산확률변수(확률변수가 이산적으로써 셀 수 있음)일 때 확률변수 각각의 값에 대해 확률 값을 대응시킨 함수이며 그 자체가 확률을 나타낸다.


19. 확률밀도함수
연속확률변수(확률변수가 연속적)일 때는 이산확률변수처럼 어떤 특정한 확률변수 값 하나에 대해 확률 값을 대응시키는 것이 불가능하다. 확률을 일종의 질량과 같은 개념으로 보고 구간 길이를 일종의 부피와 같은 개념으로 본다면 이 되며 를 밀도와 같은 의미로 이해할 수 있다. 확률변수 에 대해 이 값을 대응시킨 함수를 확률밀도함수라고 하며 라고 하면 일반적인 확률을 다음과 같이 구할 수 있다.

구분구적법과 연관지어 생각해보면 이산확률변수의 확률계산법과 동일함을 알 수 있다.


20. 이항분포
한 번의 시행에서 일어날 확률이 라 하자. 이 시행을 회 독립적으로 반복할 때, 사건 가 일어나는 횟수를 라고 하면 의 확률분포가 이항분포 를 따른다고 하며 로 나타낸다. 이 때의 확률질량함수는 다음과 같다.

기댓값은 분산은 이며 이 충분히 크면 이 확률분포를 정규분포 에 근사시킬 수 있다.


21. 조합
서로 다른 n개에서 중복 없이 k개를 택하는 방법의 수는 다음과 같다.

22. 대수의 법칙
시행 횟수를 , 특정 사건 가 일어날 횟수를 라 하면, 이 한없이 커질 때 통계적 확률 는 수학적 확률 에 가까워진다.


23. 베이즈 정리
이 표본공간 의 분할을 이룰 때, 임의의 사건 에 대해 다음이 성립한다.

따라서 정수 에 대해 다음이 성립한다.


24. 중심극한정리
동일한 확률분포를 가진 독립 확률변수 n개의 평균의 분포는 이 적당히 크다면 정규분포에 가까워진다는 이론이다.
즉, 평균이 이고 분산이 인 모집단에서, 추출한 크기 n이 증가할수록 모집단의 분포유형에 관계없이 근사적으로 정규분포을 따른다는 것이다.

 1. REF(행 사다리꼴)와 RREF(기약 행 사다리꼴)

 m*n 행렬 E가 다음 3가지 성질을 만족할 때, 행 사다리꼴(row echelon form, REF)이라고 한다.


1. 가역행렬과 역행렬

가 가역행렬일 필요충분조건은 이다.

두 행렬 , 가 차의 정사각행렬일 때, 이 성립한다.

행렬 가 가역이면 이고, 이 성립한다.


역행렬 구하기
어떤 행렬 차 정사각행렬 에 대하여 를 만족하는 행렬 가 있다면, 이 행렬을 역행렬이라고 하고 라고 표기한다.
매우 단순한 개념이지만 일반적인 차 정사각행렬에 대해 역행렬을 구하는 것은 쉽지 않다. 다음은 역행렬을 구하는 방법이다.


[1] 활용
을 계산한 후 생기는 행렬에서, 첫 열까지 나타나는 부분행렬이 단위행렬이면 이는 역행렬이 존재한다는 것이고 그 역행렬은 그 다음 열에 나타나는 부분행렬이다. 기본 행연산의 열벡터에 대한 독립성을 활용한 것으로, 에 곱하여 단위행렬이 나오는 행렬을 단위행렬에 곱하면 자기 자신이 나온다는 원리이다.

이에 대한 Sage 코드의 예제는 다음과 같다.

A = matrix([[1, -1, 2], [-1, 0, 2], [-6, 4, 11]])
I = identity_matrix(3)
print("A =")
print(A)
print()
AI = A.augment(I).rref()   # 첨가행렬 [A : I] 의 RREF 구하기
print("RREF[A: I] =")
print(AI)
print()
A2 = AI.submatrix(0, 3, 3, 3)   # A.submatrix(a, b, c, d)
# 행렬의 (a+1, b+1) 성분부터 c개의 행, d개의 열로 이루어진 부분행렬 구하기
print("inverse of A =")
print(A2)


[2] 수반행렬 활용
수반행렬이란, 차의 정사각행렬 의 성분 에 대한 여인자(cofactor)를 라고 할 때, 행렬 의 수반행렬이라고 한다. 기호로 나타내면 이다.
이렇게 수반행렬을 만들고 난 후 의 역행렬을 구할 수 있다.  수반행렬을 이용해 의 역행렬을 구하는 공식은 다음과 같다.

이 되면 분모가 이 되어 역행렬이 나오지 않음을 알 수 있다. 실제로 가 가역일 필요충분조건은 이다.

이에 대한 Sage 코드는 아래와 같다.

A = matrix([[3, -2, 1], [5, 6, 2], [1, 0, -3]])
dA = A.det()   # 행렬식 구하기
adjA = A.adjugate()   # 수반행렬 구하기
print("inverse of A = (1/dA)*adjA =")
print((1/dA)*adjA)  # 수반행렬을 이용한 역행렬 구하기


2. 선형 연립 방정식의 Least Square Solution에 대한 기하학적인 접근
선형연립방정식 의 해가 존재하지 않을 때. 이 성립한다. 위로의 정사영을 이라 하면, 의 해가 존재한다. 이 해를 이라 하면, 가 바로 최소제곱문제 의 최소제곱해(Least Square Solution)가 된다. 다음 그림에서
,   

라 하면 , 즉 와 의 열벡터들이 각각 직교하므로 이 성립한다.


(정규방정식, Normal Equation)
(최소제곱문제의 최소제곱해)

의 최소제곱해란 normal equation인 의 해이다. 여기서 가 가역행렬이라면 가 그 해가 된다. 그렇다면 의 역행렬을 구하는 것이 최소제곱해 문제를 해결하는 가장 중요한 열쇠가 된다. 이를 QR 분해를 이용하여 구해본다면,


가 full column rank를 가지면, 다음과 같이 QR 분해된다.

                               

그러면

       

                           (양변에 를 취해주자.)

                      

이제 (이 가역행렬이므로) 여기에 후진대입법(backward substitution)을 적용하면,

   




3. Gram-Schmidt 정규직교화 과정
먼저 의 기저 로부터 직교집합 을 다음과 같은 단계로 생성해 나간다.
             
[1단계] 이라 함
[2단계] 에 의하여 생성되는 부분공간을 이라 하면 를 다음과 같이 생성할 수 있다.
     
[3단계] , 에 의하여 생성되는 부분공간을 라 하고 를 다음과 같이 생성할 수 있다.
     
[4단계] 마찬가지 방법으로 하면
     

위의 단계로부터 얻어지는 은 서로 직교인 직교집합이다. 즉 라 정의하면 집합 은 의 정규 직교 기저가 된다.

cf.) (각각의 기저로 span된 부분공간은 모두 같다.)


4. QR 분해
행렬 가 rank 인 행렬이라면, 로 분해가능하다. 여기서 는 의 열공간 에 대해 Gram-Schmidt 알고리즘으로 생성한 정규직교기저로 만들어진 행렬이고, 은 가역인 의 상삼각행렬이다.


5. QR분해로 최소제곱문제를 풀 수 있음
앞서 학습했듯이, 의 최소제곱해란 normal equation인 의 해이다. 여기서 가 가역행렬이라면(가 full column rank를 가지면) 가 그 해가 된다. 그렇다면 의 역행렬을 구하는 것이 최소제곱해 문제를 해결하는 가장 중요한 열쇠가 된다. 이 를 QR 분해를 이용하여 다음과 같이 간단하게 구할 수 있다.

가 full column rank를 가지면, 다음과 같이 QR 분해된다.

     
     
     
     
     

-> 다음과 같이 Gram-Schmidt 정규직교화 과정과 QR 분해를 통하여 최소 제곱 문제에서 유일해를 구할 수 있다.

6.

7. 이차곡선과 원뿔곡선
이차곡선의 기본 형태는 이다.
한 편, 고등학교에서 배웠던 이차곡선의 표준형은 각각 다음과 같다.

타원(원 포함) : (라고 하자. 이면 장축의 길이 , 두 초점의 좌표는 . 이면 장축의 길이 , 두 초점의 좌표는 ). 타원의 두 초점으로부터 타원 상의 임의의 점까지의 거리의 합은 항상 장축의 길이와 같다. 원이라면 초점, 장축이 정의되지 않으며 중심으로부터 거리가 같은 점들의 자취.

포물선 : (초점의 좌표는 , 준선의 방정식은 ) or (초점의 좌표는 , 준선의 방정식은 ). 포물선 상의 임의의 점은 초점까지의 거리와 준선까지의 거리가 같다.

쌍곡선 : (초점의 좌표는 , 주축의 길이는 ) or (초점의 좌표는 , 주축의 길이는 ). 두 케이스 모두 점근선을 가지며 이다. 두 초점으로부터 쌍곡선 위의 임의의 점까지의 거리의 차는 주축의 길이와 같다.

이 곡선들을 평행이동하고 회전이동하면 에 대한 일차항, 항도 생기게 되며 이 모든 것을 아우르는 것이 위에서 언급한 이차곡선의 식이다. 이 식을 행렬로 표현하면 다음과 같다.


곡선의 실질적인 모양은 평행이동 요소를 제외한 이 결정한다. 이를 상의 방정식 에 대한 이차형식(quadratic form)이라고 하며, 와 같이 나타낼 수 있다. 를 대칭행렬로 설정한 이유는 직교대각화하여 분석이 쉽게 하기 위함이다.

같은 방법으로 으로 확장하면 타원체, 쌍곡포물면 등 이차곡면을 나타낼 수 있으며, 이차곡선, 이차형식은 일반적으로 모든 에서 정의가 가능하다. 이 때의 이차형식 역시 와 같이 나타낼 수 있다. (이 때의 차원 벡터, 차 정사각행렬)
     
흥미로운 점은, 위와 같은 원뿔에 대해 절단면을 생각하면 앞서 논의한 이차곡선을 모두 얻을 수 있다는 것이다.
위 원뿔은 와 같이 나타낼 수 있으며 절단하는 평면의 방정식과 연립하여 풀면 절단면이 어떤 도형이 나오는지 식을 분석하여서도 파악할 수 있다.

한편, 이차곡선의 방정식으로 만들어지는 그래프가 곡선이 아닌 한 점, 한 직선 또는 한 쌍의 직선으로 이루어져 있거나 아예 존재하지 않을 때가 있다. 그러한 그래프들을 퇴화 원뿔곡선이라고 한다.


8. 다변수함수 극값 판별
먼저, 1학년 때 배운 방법으로써, 이변수함수 의 이계 편도함수를 이용해 판별하는 방법은 다음과 같다.

(1) 일 때, 이면 극솟값,  이면 극댓값이다.
(2) 이라면 안장점이다.

선형대수학을 배우지 않은 1학년의 입장으로서는 그냥 암기해야 하는 부분이었다. 하지만 선형대수학의 이론을 결합하면 정확하게 이해할 수 있고 삼변수 이상의 다변수함수에 대해서도 극값을 판별할 수 있다. 필요한 선형대수학의 이론은 다음과 같다.

헤시안 행렬의 정의, Fermat의 임계점 정리, 테일러 근사로부터 이차형식 발견하기

변수함수 의 헤시안 행렬을 다음과 같이 정의한다.


이라 하자.
근방에서의 의 이차 테일러 근사식은
이다.
즉, 근방에서는 대신 이차 테일러 근사식으로 분석하여도 무방하다.(에서는 근사가 아니라 등호이며, 근방에서의 증가, 감소의 경향성까지 충분히 반영된다. 따라서, 극대, 극소 여부도 반영된다.)

한 편, 에서 극대 또는 극소가 되고, 의 편도함수가 존재하면 이다(Fermat의 임계점 정리)
그러므로 극대, 극소가 되는 점을 찾으려면 이 되는 임계점 만 조사하면 된다.

에서 임계점이면 이므로 임계점의 의 극대, 극소 여부는 에 의해 결정된다.
, 로 두면 해당 식은 가 되며, 가 연속인 2계 편도 함수를 가지면 Clairaut’s Theorem을 만족하므로, 는 대칭행렬이다. 따라서, 는 이차형식이다.

부분행렬, 선행 주 소행렬식, 행렬의 대각화에 대한 성질

대칭행렬 부분행렬을 다음과 같이 정의하자.

이 부분행렬들에 대한 행렬식들을 의 선행 주 소행렬식(leading principal minors)이라고 하며 로 표기한다.

한 편, 대칭행렬 에 대한 대각화 연산을 라고 정의하고 를 대각화한 행렬을 와 같이 쓸 수 있다.
이 때, 대각화의 성질에 의해 이 된다.
대각화 한 행렬 의 대각선 성분은 대칭행렬 의 eigenvalue이다.
의 주 대각선 성분을 열 성분부터 차례로 라고 하자.
행렬식의 성질에 의해,

이다.

의 주축정리

대칭행렬 의 고윳값을 라고 할 때, 좌표축의 회전에 의하여 이차형식 는 새로운 좌표계에서

으로 표현될 수 있다. 이 회전에 대해서 살펴보면, 정규직교화법을 이용하여 를 대각화하는 행렬식이 인 직교행렬 를 선택하면 새 좌표계가 이라는 치환에 의하여 얻어진다.

양의 정부호(positive definite), 음의 정부호(negative definite), 부정부호(indefinite)

정사각행렬 가 대칭행렬일 때, 이차형식 가 임의의 에 대하여 이면 양의 정부호(positive definite), 이면 음의 정부호(negative definite)라 한다. 어떤 에 대해서는 이고,어떤 에 대해서는 이면 부정부호(indifinte)라 한다.

한 편, 이차형식의 양의 정부호, 음의 정부호, 부정부호는 고윳값의 부호로 판별할 수 있다.
(1) 의 고윳값들이 모두 양이라면 는 양의 정부호(positive definite)이다.
(2) 의 고윳값들이 모두 음이라면 는 음의 정부호(negative definite)이다.
(3) 가 양의 고윳값과 음의 고윳값을 모두 가지면 는 부정부호(indefinite)이다.
이는 주축정리가 로 나타난다는 점에 착안하여 간단히 증명이 가능하다.

한 편, 이므로,
(i) 가 양의 정부호이면 모든 에 대하여 이고
(ii) 가 음의 정부호이면 모든 에 대하여 이다.
(i), (ii) 명제의 역도 성립한다.

①②③④를 종합하여 다변수함수의 극대, 극소를 찾는 방법을 정리해보면 다음과 같다.

[1단계] 방정식으로 임계점을 찾는다.
[2단계] 의 헤시안 행렬을 구하고 해당 임계점에서의 그 헤시안 행렬의 고윳값들을 구하면 양의 정부호, 음의 정부호, 부정부호의 여부를 알 수 있으며, 이로써 해당 임계점에서 의 극대, 극소를 찾을 수 있다.

이제 앞서 논의한 이변수함수의 극대, 극소 판정법이 왜 그렇게 나오는지 설명할 수 있다.

가 이변수함수이면 헤시안 행렬은 이며, Clairaut’s Theorem이 성립한다고 하면 대칭행렬이므로 대각화가 가능하다. 그 대각화한 행렬을 라고 하자.
앞서 논의한 ②에 의해 은 같은 부호를 가진다.
한 편, 이다.
극대, 극소를 판별하고자 하는 임계점에서 이면 , 가 같은 부호를 가지므로 양의 정부호 혹은 음의 정부호이다.
여기서 이면 이 되고 양의 정부호가 되므로 극댓값을 갖고, 이면 이 되고 음의 정부호가 되므로 극솟값을 갖는다.
이면 두 대각 성분의 부호가 다르므로 부정부호이고 해당 임계점은 안장점(saddle point)이다.

앞서 언급한 이계도함수의 극대, 극소 판별법과 정확히 일치한다.


9. 뉴턴 방법(Newton's Method)
실숫값 함수 항()이 포함된 방정식의 해()를 를 이용해 근사적으로 쉽게 구하는 방법이다. 단, 처음 시작할 때 설정하는 초깃값이 에 가깝지 않을 경우 실제 구하려는 근과는 멀리 떨어진 엉뚱한 값을 구하게 될 수 있으니 주의해야 한다.
의 근삿값을 구하는 과정은 다음과 같다.

[1단계] 에 적당히 가까운 값인 을 설정한다.
[2단계] 으로 를 구한다.
[3단계] 을 여러 번 반복하여 에 매우 가까운 을 구한다. 이때 은 적당히 큰 시도 횟수이다. ()
[4단계] 충분히 수렴하는 경향성이 보이면 3단계를 중지한다. 이 때 이 실제 구하려는 근에 대한 근삿값이다.

위 방법은 초깃값을 좌표 값으로 하는 주어진 함수의 접선의 방정식을 구하고 그 접선의 절편을 그 다음 단계의 초깃값으로 설정하여 반복하는 것이다. 어렵지 않고 참값으로 수렴하는 속도가 매우 빠르므로 많이 쓰이는 방법이다.


10. 경사하강법
경사하강법(gradient descent method)은 어떤 모델에 대해 비용을 최소화시키는 알고리즘으로 함수의 기울기가 가장 가파르게 감소하는 방향을 반복적으로 택하여 극솟값을 찾아가는 방법이다. 함수의 기울기가 가장 가파르게 감소하는 것은 그래디언트의 성질을 이용, 방향을 로 택하는 경우이다(스키장에서 가장 빠르게 하강하는 길을 찾는 알고리즘). 경사하강법은 모든 차원과 모든 공간에서의 적용이 가능하다. 심지어 무한차원 벡터함수에도 쓰일 수 있다.

다음은 경사하강법의 알고리즘이다.

[1] 초기 근사해 와 허용오차(tolerance) 을 준다. 이라 한다.

[2] 를 계산한다. 만일 이면, 알고리즘을 멈춘다.(극솟값에 충분히 근접)

[3] line search를 수행하여 적절한 step-size 를 구한다.

[4] , 라 두고 [2]로 이동한다.

 

 

 

18. 다음은 주어진 함수에 경사하강법을 적용한 예시이다. 허용오차는 으로 주었다. 행렬을 바꾸어 시도해 보시오.

  [출처]  J. Barzilai 와 J. M. Borwein, Two-Point Step Size Gradient Methods, IMA J. Numer. Anal. (1988) 8 (1): 141-148.

, ,

18. 다음은 주어진 함수에 경사하강법을 적용한 예시이다. 허용오차는 으로 주었다. 행렬을 바꾸어 시도해 보시오.(수치변경) [출처]  J. Barzilai 와 J. M. Borwein, Two-Point Step Size Gradient Methods, IMA J. Numer. Anal. (1988) 8 (1): 141-148.

, ,


여기서 이고, 는 Hessian 가 양의 정부호(positive definite)인 이차함수이므로 exact line search를 수행하면, 는 다음과 같이 closed-form으로 나온다.


                            


                                                                               

b = vector(RR, [1, 1, 1, 1,1])   # objective function

x0 = vector(RR, [0, 0, 0, 0,0])   # initial guess

g0 = -b                     # initial gradient

r = []  # 그래프를 그리기 위한 용도


# main iteration

for i in range(0, 200):

    gn = g0.norm()

    r.append((i, gn))

    if gn < 10^(-8):

        print("Stationary point! Algorithm terminated!")

        break

    

    w = A*g0

    a = g0.inner_product(g0)/(g0.inner_product(w))  # step-size

    x1 = x0-a*g0

    g1 = A*x1-b

    x0 = x1;g0 = g1

    

show(line2d(r) + point(r, color = 'red'))  # gradient 의 norm을 그래프로 그림

                                                                               

        Stationary point! Algorithm terminated!




위의 그래프에서 이 점차 0에 수렴함을 쉽게 확인할 수 있다.


12. 고등학교 때는 일변수 확률분포만 간단하게 배웠는데, 대학 미적분학에서 배운 다변수 미적분학을 활용하여 다변수 확률분포를 분석할 수 있으며, 추가적으로 공분산과 상관계수라는 개념이 필요함을 깨달았다.


13. 같은 기댓값과 같은 분산을 가지는 정규분포는 모두 확률분포가 같으며 확률분포의 성질에 의해 주어진 확률분포 에 대해 와 같이 새로운 확률변수 를 생각할 수 있으며 이 확률변수 또한 정규분포를 따르며 기댓값이 , 분산이 이므로 모든 정규분포를 표준화시켜서 이 에 대한 확률분포를 활용하여 비교할 수 있음을 깨달았다.


14. 동일한 확률분포를 가진 독립 확률변수 개의 평균의 분포는 이 적당히 크다면 정규분포에 가까워진다는 사실을 알았으며, 이는 평균이 이고 분산이 인 모집단으로부터 추출한 크기가 인 확률표본의 표본평균 이 증가할수록 모집단의 분포유형이 어찌됐건 대다수가 를 근사적으로 따르게 됨을 알았다.

 

15. 조건부 확률과 몬티홀 문제
몬티홀 문제란, 세 개의 문 중 단 하나에만 선물이 있고 나머지 둘은 꽝인 상태에서 선물을 맞추는 문제이다. 다만 처음 선택했을 때, 진행자가 선택되지 않은 두 문 중 꽝 하나를 공개한 후 선택을 바꿀 것인지 아닌지를 묻는다. 이러한 규칙 하에, 과연 선택을 바꾸는 것과 바꾸지 않는 것 중 무엇이 더 이득인지 구하는 문제이다.
그 답은 ‘바꾸는 것이 이득’이다.
만약 선택을 유지한다면 선물에 당첨될 확률이 처음의 이 되겠지만, 만약 선택을 바꾸었을 때 선물을 받을 확률은 이다. 따라서 선택을 바꾸는 것이 확률적으로 이득이다.
만약 문이 개이며 선물이 있는 문은 개라고 하자. 이때의 선물에 당첨된 확률을 구해보자. 선택을 안 바꾼다면 이고, 가 된다. 즉, 선택을 바꾸었을 때 선물을 받을 확률이 안 바꾸었을 때보다 배만큼 크다.
이 풀이는 조건부 확률을 이용한 것이다. 사실 이 문제를 처음 들었을 때는 별 차이가 있나 싶었지만, 확률을 배운 후에는 정말 큰 차이가 있음을 알았다.


16. 대수의 법칙과 카지노
우선 대수의 법칙에 대해 알아보자. 시행 횟수를 , 특정 사건 가 일어날 횟수를 라 하면, 이 한없이 커질 때 통계적 확률 는 수학적 확률 에 가까워진다(). 즉, 시행 횟수가 커질수록 통계적 확률이 수학적 확률과 거의 같아지게 된다는 말이다. 카지노는 이를 이용해 막대한 수익을 벌어들이고 있다.
카지노 또한 돈을 벌기 위한 기업이다. 도박의 특성상 수익을 벌어들일지 아닐지는 순전히 운에 달려 있을 것이라 생각하기 쉬운데 실제로는 그렇지 않다. 수학적으로, 카지노가 돈을 벌어들일 확률은 돈을 잃을 확률보다 근소하게 크다. 수많은 사람들이 무수한 도박을 하므로 시행 횟수는 기하급수적으로 커지기 때문에 승률이 수학적 확률과 거의 유사해진다. 즉, 시행 횟수가 커질수록 카지노는 수익을 반드시 벌어들이게 된다는 것이다. 이것이 카지노가 계속해서 영업이 가능한 이유이다. 확률을 이용해 수익을 벌어들이는 것이 가능하다는 걸 처음으로 깨닫게 되었다.


17. 순열과 조합
서로 다른 개에서 중복 없이 개를 택하여 한 줄로 세우는 방법의 수를 순열이라고 하며 라고 표기한다. 개 중에 첫 자리에 올 수 있는 경우의 수 개, 두 번째 자리에 올 수 있는 경우의 수 개, ..., 번째 자리에 올 수 있는 경우의 수 개이고 각각은 곱의 법칙으로 연결되므로

이다.
한 편, 서로 다른 개에서 중복 없이 개를 택하는 방법의 수를 조합이라고 하며 또는 라고 표기한다.
순열과 다른 점으로는 택하기만 하고 순서대로 줄 세우지(배열하지) 않는다는 점이다. 개를 택하고 그 개를 줄 세우는 것이 순열인데, 택하는 과정 각각에 대해 줄 세우는 경우의 수가 발생하므로 곱의 법칙을 적용하여 조합과 순열의 관계를 유도할 수 있다.

이로써 조합의 계산법을 유도할 수 있다.


18. 심프슨의 역설
일부의 면만 보여주는 확률을 믿으면 안 된다는 것을 단적으로 보여주는 예시인 역설이다.
이 역설의 예시로, 두 야구 선수 의 승률 비교가 있다.

 

투수

투수

승률

승률

전반기

후반기

시즌 전체


이처럼 전반기와 후반기 모두 투수 보다 투수 가 승률이 더 높지만, 막상 시즌 전체에서 보면 투수 가 투수 보다 승률이 더 높다는 역설적인 상황이 발생한다. 이는 확률 관련 거짓 명제들 중 를 참이라고 착각했기 때문에 발생하는 것이다.
의 상황을 좀 더 분석해보면 총 경기 수가 는 전반기 후반기 모두 경기이고, 는 전반기 경기, 후반기 경기이다. 즉, 가중치가 다르다. 시즌 전체의 승률을 계산하는 방법 중의 하나로 전반기, 후반기에 소화한 경기 수를 가중치로 하여 가중 평균을 계산하는 것이 있는데, 투수 가 승률 낮은 후반기 경기 수가 많기 때문에 전체 승률이 보다 낮게 된 것으로 해석할 수 있다.


19. 조건부 확률과 제비뽑기
‘제비뽑기를 할 때 언제 하는 것이 가장 유리한가?’이다. 이 문제의 답을 알기 위해서는 꽝과 당첨의 각 개수와 총 제비의 개수를 알아야 한다.
이 문제의 답은 ‘언제 뽑든 똑같다’이다. 나중에 뽑았을 때의 확률을 구할 때는 앞에서 꽝 제비를 뽑았는지 당첨 제비를 뽑았는지도 고려해서 확률을 구해야 한다. 즉, 조건부 확률의 계산법으로 구해야 하며 실제로 확률을 구해보면 처음 뽑았을 때랑 전혀 다를 게 없다는 걸 알고 있다. 사람들은 나중에 뽑는 것이 불리하다고 종종 말하고는 하지만, 수학적으로 계산해보면 실제로는 아무 상관 없다는 걸 알 수 있다.
명의 사람이 있고 당첨 제비가 개, 제비의 총 개수가 개라고 하자.
처음 제비를 뽑는 사람이 당첨 제비를 뽑을 확률은 당연히 이다.
두 번째 제비를 뽑는 사람이 당첨 제비를 뽑을 확률은 첫 사람이 제비를 뽑았을 경우의 확률과 뽑지 않았을 경우의 확률을 각각 계산하여 더해주어야 한다.

그 이후로 뽑는 경우도 항상 가 된다.


20. 표본평균과 여론조사
일상 생활에서 표본을 조사하여 모집단을 추정하는 경우가 많이 있으며 대표적으로 선거철에 진행하는 방송사에서의 여론조사가 있다. 하지만, 표본의 자료 수가 부족하다면 자료 분석의 결과의 오차는 클 수밖에 없고 의미없는 자료가 될 가능성이 있다. 그러므로 표본의 자료 수가 어느 정도 커야 그 자료에 신뢰성이 있다고 말할 수 있다.
여론조사에서 여러 가지 추정을 할 수 있지만 대표적으로 표본평균에 대해서 살펴보자. 중심극한정리에 따르면 추출한 표본의 개수()가 증가할수록, 모집단의 분포유형에 관계없이 많은 경우 근사적으로 표본평균 가 정규분포 을 따르게 된다(는 모평균, 는 모표준편차). 실제로 이 정규분포를 분석해보면 추출한 대다수의 표본평균이 모평균값 주위에 분포하게 되므로 표본평균 값은 모평균을 추정하기에 상당히 좋다고 할 수 있다. 다만 표본을 추출할 때 무작위로 편중되지 않게 추출해야 의미가 있다.
작게는 정치적 문제, 넓게는 기업 경영, 날씨 예측 등에 표본을 활용한 모집단 추정이 쓰이는데, 그 정확도와 추정의 신뢰도를 올리기 위해 지금도 많은 사람들이 노력하고 있다.


21. 확률 및 통계와 보험 계리사
보험 계리사는 보험 사업 전반에 걸친 수리 및 통계 분석 업무를 하는 직업으로, 국내 사회 제도와 경제 실정에 맞는 보험 상품을 개발하고 운용하는 것이 일이다. 이 일을 할 때 가장 중요한 것 중 하나가 바로 보험료를 결정하는 것이다. 보험료를 결정할 때, 지금까지의 이용 고객의 데이터를 분석해 고객들이 보험비를 청구하는 비율을 보고 보험료를 인상할지 동결할지 아니면 내릴지를 결정할 수 있다. 또한 개인 고객에 대해서도 사고가 발생할 확률을 계산해 낸 후, 그 결과를 보험료 결정에 반영한다. 이처럼 확률과 통계는 경영, 특히 예측할 수 없는 경우에 더더욱 중요한 가치를 지니게 된다.


22. 고등학교 때 배운 일변수함수의 미적분, 대학 1학년 때 배운 변수, 변수 함수의 미적분을 넘어서 변수함수의 미적분을 선형대수학 지식과 연결지어서 일반적으로 활용할 수 있다는 것을 깨달았다.


23. 역행렬을 구하는 과정이 제법 번거롭고 복잡한데, 최대한 직교대각화 가능한 행렬을 찾아서 전치행렬을 구하는 수행만으로 간편하게 이론을 전개하는 경우가 많다는 것을 깨달았다(이차형식 등)


24. 다변수함수의 Gradient 벡터가 가리키는 방향은 그 점에서 가장 가파르게 상숭 또는 하강하는 방향으로써 이것이 최적해를 찾는 데에 핵심 아이디어라는 것을 깨달았다(Gradient Descent Method).


25. 정사영문제가 단순히 정사영으로 끝나는 것이 아니라 최소제곱해로 연결되며, 실험에서 데이터를 추출하였을 때 이 데이터의 경향성을 나타내는 식을 찾을 때 최소제곱해로써 구할 수 있음을 깨달았다.


26. 선형연립일차방정식 에서 leading variable의 개수와 free variable의 개수는 합하면 항상 의 열의 개수가 되는데 이로부터 Rank-Nullity 정리가 성립함을 알 수 있다. leading variable 개수가 곧 rank이며, free variable 개수가 곧 Nullity, Null Space의 차원이다.


27. 통계에서 쓰는 확률밀도함수 흔한 적분의 형태 가 일반적인 적분방법으로 구하기 어려워 고등학교에서는 확률분포표를 제공하여 주었는데, Fubini의 정리와 극좌표 변환을 활용하면 구할 수 있다는 것을 깨달았다.


28. 행렬의 역행렬을 구하는 일반적인 공식은 Cofactor Expansion과 행렬식의 성질을 활용하여 구할 수 있음을 깨달았다.

 

 (1) 성분이 모두 0인 행이 존재하면 그 행은 행렬의 맨 아래에 위치한다.

 (2) 각 행에서 처음으로 나타나는 0이 아닌 성분은 1이다. 이때 이 1을 그 행의 선행성분(leading entry, leading 1)이라고 한다.

 (3) i행과 (i+1)행 모두에 선행성분이 존재하면 (i+1)행의 선행성분은 i행의 선행성분보다 오른쪽에 위치한다.


 또 행 사다리꼴 행렬 E가 다음 4번째 성질을 추가로 만족하면 E를 기약 행 사다리꼴(reduced row echelon form, RREF)이라고 한다.

 (4) 선행성분(leading entry in row)을 포함하는 열의 선행선분 외의 성분은 모두 0이다.


1.정사영

대상(A)을 다른 대상(B)에 수직적으로 투영하는 것을 정사영이라고 한다. 즉 이를 B위로의 A의 정사영(Projection of A onto B)이라고 표현할 수 있다. 정사영은 사물뿐만 아니라, 벡터에서도 적용될 수 있다.


2.내적

내적(Inner Product, Dot Product)은 두 벡터의 연산 방법 중 하나로, 두 벡터의 노름과 두 벡터가 이루는 각의 cos값의 곱이다. 노름과 cos값으로만 이루어져 있기 때문에, 내적의 값은 스칼라이다. 또한 내적은 시각화해보면, 한 벡터를 다른 벡터에 정사영하는 과정과 동일하다.

  

3.역행렬

역행렬(Inverse Matrix) A^-1는 본행렬 A의 역이다. A의 역행렬이 존재하므로, 행렬 A는 가역행렬(Invertible Matrix)이 된다. 역행렬을 구하는 방법은 대표적으로 2가지가 있다. 첫 번째는 [본행렬 단위행렬]의 RREF를 구해서, [단위행렬 역행렬]로 역행렬을 구하는 방법이다. 두 번째는 본행렬의 수반행렬과 행렬식을 구하여, adj(A)/det(A)로 역행렬을 구하는 방법이다. 


4.선형연립방정식

선형방정식(Linear Equation)의 군(群)을 선형연립방정식(System of Linear Equations)이라 한다. System이라는 의미에 근거하면, 여러 방정식들이 모여서 함께 작용하는 메커니즘을 생각해 볼 수 있다. 이러한 메커니즘이 바로 행렬이며, 선형연립방정식은 행렬로 표현될 수 있다.


5.일차결합

일차결합(Linear Combination)이란, 벡터들이 하나의 선형방정식으로 결합되는 것을 의미한다. span{A, B}는 { k | Ax+By = k, (x, y는 실수) }로 해석되며, 이도 일차결합의 일종이다.


6.치환(순열)

치환이란 집합 A에 있는 값을 집합 A에 있는 값들로 1:1 대응시키는 전단사함수이다. 집합 A의 원소의 개수가 n개일 때, 치환의 개수는 n!개이다. 그리고 치환의 값들을 리스트(List)로 나열하였을 때 오름차순의 규칙에 위배되면, 이 부분에서 반전이 일어났다라고 말한다. 반전의 횟수가 짝이면 짝치환이며, 홀이면 홀치환이다. 이 짝치환과 홀치환은 행렬식(Determinant)를 결정할 때 사용된다.


7.기본행렬

기본행렬(Elementary Matrix)이란, 단위행렬(Identity Matrix)에 하나의 ERO(Elementary Row Operation)을 적용한 행렬이다. 기본행렬은 E로 나타내며, EA를 계산하면, 행렬 E에 적용된 연산대로 행렬 A가 연산된다. 즉 행렬 E가 행1과 행2를 교체하였다면(Interchange), EA도 A의 행1과 행2가 교체된 형태로 출력된다.


8.대칭행렬

대칭행렬(Symmetric Matrix)이란, 주 대각(Main Diagonal)을 기준으로 행과 열을 맞바꾸었을 때(Transpose), 그 행렬이 본행렬과 동일한 경우를 대칭행렬이라고 한다. 즉, A = A^T이다. 또한 –A = A^T를 만족하는 행렬에 대해서는 반대칭행렬(Skew Symmetric Matrix)이라고 한다.


9.일차독립

Ax=B에서 B가 0(즉, Homogeneous)이며 해가 사소한 경우(Trivial), 행렬 A를 일차독립이라고 한다. 즉 행렬 A에 있는 벡터들을 조합하여, 행렬 A 내에 있는 벡터를 만들 수 없다는 것을 의미한다. 


10.기저

기저(Basis)란 R^n의 공간을 포괄(Span)할 수 있으며, 일차독립(Linearly Independent)인 벡터의 집합을 의미한다. 가장 간단한 3차원 공간의 기저는 x, y, z 축(Axis)의 단위벡터이며, 집합 내에 있는 벡터의 수는 차원을 결정한다.


11.외적

외적(Cross Product)이란, 두 벡터의 곱 연산 방법 중 하나이다. 두 벡터 A(a, b, c), B(d, e, f)가 주어졌을 때, 외적(Cross Product)는 이다. 방향 벡터 을 제외한 나머지 식은 스칼라로, 기하학적인 의미로는 두 벡터가 이루는 평행사변형의 넓이이다. 또한 이를 행렬로 표현하여 외적을 구할 수도 있다.  

(i, j, k는 각각의 축에 대한 단위 벡터이다)

외적(Cross Product)과 외적(Outer Product)는 정의 자체가 다르기 때문에, 혼동하여서는 아니된다.


 2. 최소제곱해

방정식의 개수가 미지수의 개수보다 많은 (over-determined인) 선형연립방정식 이 있다고 하자. 을 만족하는 유일한 해는 단 하나의 해도 없는 경우가 대부분이므로, 대신 를 만족하는 근사해를 찾는다. 이때의 해를 최소제곱해라고 한다.

 

 3. 고윳값과 고유벡터

n차의 정사각행렬 A이 있다고 하자. 0벡터가 아닌 벡터 x에 대해 Ax = λx를 만족하는 λ를 A의 고윳값, x를 λ에 대응하는 A의 고유벡터라고 한다.


 4. 고윳값 분해

정사각행렬 A가 대각화가능할 때, 가역행렬 P와 대각선행렬 D에 대해 다음이 성립한다.

P-1AP = D  → A = PDP-1

그리고 A의 고윳값과 고유벡터를 이용해 A를 분해한다.


 5. 2차형식

n차 대칭행렬인 A에 대해 n개의 변수 x1, ... , xn을 성분으로 갖는 Rn의 벡터 x = [x1, ..., xn]T에 대하여 이차다항식 q(x) = <Ax, x> = xTAx = 을 Rn상의 이차형식이라 한다.


12.편도함수

여러 개의 변수가 존재할 때, 하나의 변수만을 선택하여 구한 도함수이다. 즉, 나머지 변수들을 상수로 간주하고, 특정 변수에 대해서만 도함수를 구하는 것이다. 이러한 도함수를 구하는 과정을 ‘편미분한다’고 말한다.


13.그레디언트

그레디언트(Gradient)는 2차원계에서 사용하는 개념인 기울기와 동일하며, 고차원계에서 기울기를 나타내기 위한 표기방법이다.



14.연쇄법칙

연쇄법칙(Chain Rule)이란 라이프니츠식(式) 기호를 대수적 연산처럼 활용할 수 있는 법칙이다. 마치 사슬처럼 이어지는 모양을 나타내고 있어서, Chain이라는 이름이 사용된 것이다.

 


15.임계점

임계점(Critical Point)이란, 도함수 f’(x)의 값이 0이 되거나, 존재하지 않는 x의 값들이다. 이는 최대 – 최소 정리(Extreme Value Theorem)에서 요구되는 값들이다. 페르마의 정리 또는 페르마의 임계점 정리의 정방향은 성립하나, 역방향은 성립하지 않는다는 점에서, 임계점의 정의가 나오게 된 것이다.


7. Taylor 정리

 다변수 함수 f가 연속인 편도함수를 가지면, 적당한 가 존재하여 다음이 성립한다.


        -

        -


 8. Fermat의 임계점 정리

함수 f(x, y)가 (a,b)에서 극대 또는 극소가 되고 f의 편도함수가 존재하면 다음이 성립한다.



 

 10. Fubini의 정리


 f(x, y)가 직사각형 영역 R = [a, b] x [c, d] = {}에서 연속이면, 이 성립한다.


16.경사하강법

경사하강법(Gradient Descent Method)는 뉴턴방법(Newton’s Method)를 응용한 것으로, 그레디언트가 최소가 되는 즉 지역 최솟값(Local Minimum)을 찾는 방법이다. 이 방법을 변형하여 그레디언트가 최대가 되는 즉 지역 최댓값(Local Maximum)을 찾는 방법인 경사상승법(Gradient Ascent Method)을 생각해 볼 수 있다.

           

 12. 대수의 법칙

 시행 횟수를 n, 특정 사건 A가 일어날 횟수를 k라 하면, n이 한없이 커질 때 통계적 확률 P(A)는 수학적 확률 a에 가까워진다.


 13. 베이즈 정리

 {A1, A2, ... , An}이 표본공간 S의 분할을 이룰 때, 임의의 사건 B에 대해 다음이 성립한다.

 B = B ∩ S = (A1 ⋃ A2 ⋃ ... ⋃ An) ∩ B

따라서 임의의 숫자 I에 대해 다음이 성립한다.

P(Ai | B)       = P(Ai ∩ B) / P(B)

                = P(Ai ∩ B) / ( P(A1)P(B|A1) + ... + P(An)P(B|An) )


 14. 중심극한정리

 동일한 확률분포를 가진 독립 확률변수 n개의 평균의 분포는 이 적당히 크다면 정규분포에 가까워진다는 이론이다.

 즉, 평균이 이고 분산이 인 모집단에서, 추출한 크기 n이 증가할수록 모집단의 분포유형에 관계없이 근사적으로 정규분포을 따른다는 것이다.


17.확률질량함수

확률질량함수(Probability Mass Function, PMF)란, 이산확률분포를 따르는 확률변수에 대한 함수로, 불연속적인 속성으로 인해 입력값이 한정되어 있다. 대표적으로 포아송 분포, 베르누이 분포, 이항 분포가 확률질량함수를 갖는다.



18.확률밀도함수

확률밀도함수(Probability Density Function, PDF)란, 연속확률분포를 따르는 확률변수에 대한 함수로, 연속적인 속성으로 인해 특정 범위에 한해서 입력값이 자유롭다. 대표적으로 정규 분포, 균등 분포, 지수 분포, 코시 분포가 확률밀도함수를 갖는다.


19.누적분포함수

함수 f(x)를 왼쪽 끝 값으로부터 특정 지점 x까지 적분하여 구한 함수 F(x)를 누적분포함수(Cumulative Distribution Function, CDF)라고 한다. 또한 확률함수의 넓이에 대한 함수라고 표현할 수도 있다. 이 함수는 R언어에서 주로 사용하는 것으로, 특정 입력값까지의 범위를 구하는 데 사용한다. 기본적인 확률 옵션은 'lower.tail=T'으로 설정되어 있으며, 이는 누적분포함수와 같은 수식을 따른다는 것이다. 만약 'lower.tail=F'로 옵션을 변경하면, 누적분포함수와 반대되는 수식을 사용하게 된다. 즉 지점 x를 시작점으로 하여, 끝 값까지 적분을 수행하는 수식을 사용한다. 


20.적률생성함수

자연상수 e의 xt제곱을 확률함수에 곱하여, x에 대한 무한범위 적분을 수행해서 얻은 함수를 적률생성함수(Moment Generating Function, MGF)라 한다. 이 함수는 자료를 분석하는 새로운 방법으로, 입력 변수가 t이며, t의 값에 따라 적률이 출력된다.


21.주성분분석(Principle Component Analysis)

행렬에서 기저의 수를 차원(Dimension)이라고 하는데, 이 차원의 수를 줄여서 데이터를 분석하는 과정을 PCA 분석 또는 주성분 분석(Principal Component Analysis)이라고 한다. 즉, 고차원 행렬의 기저를 원래 자료의 의미를 보존하면서, 저차원 행렬의 기저로 대체하는 과정이라고 할 수 있다. 기저 차체가 PCA 분석 알고리즘을 적용하는 과정에서 변화하기 때문에, 일반적으로 고차원 행렬과 저차원 행렬이 선형적으로 연관성이 없다고 표현할 수 있다. 주성분 분석은 단순히 차원을 줄이는 것이 아니라, 원래의 값을 최대한 보존하면서 차원을 줄인다는 점에서, 많은 자료를 처리하는데 있어서 유용하다. 또한 차원을 줄이게 되면, 그만큼 데이터의 특징점을 찾아내는 것이 수월해진다. 예를 들어, 4차원 데이터를 3차원으로 감축시켰다면, 이를 시각적으로 표현하였을 때, 더 이해하기 쉬울 것이다. 물론 4차원 데이터도 이론적으로 표현은 할 수 있다. 즉, 기하학적인 4차원이 아닌, 데카르트 좌표계를 확장한 4차원을 생각해보면, 4개의 기본축(x, y, z, w)이 서로 직교하는 좌표계를 생각해 볼 수 있다. 하지만 아러한 좌표계는 우리가 인지하는 공간적 차원을 넘어서기에 시각적으로 표현하는 것 자체가 불가능하다. 그렇기에 차원을 줄이는 과정은 데이터를 분석하는데 있어서 상당히 유용할 것이다. 다만 차원의 수를 너무 감축시키면, 오차가 커지면서 자료의 원래 의미가 왜곡 및 변질될 수 있기 때문에, 적당히 감축을 하는 것이 좋다.


 15. 공분산과 상관계수

 확률변수 X와 Y의 공분산은 다음과 같다.

  

 그리고 X와 Y의 상관계수는 다음과 같이 정의된다.

  


31. Gamma 분포 (Gamma distribution)

Gamma 분포는 신뢰성 이론, 기대 시간, 수명 시간 등의 분포에서 이용된다.



(2)Gamma 분포의 확률밀도함수


(3) 그래프



 16. 지도학습과 비지도학습

 지도학습은 어느 정도의 기준이 주어진 상태에서 자료를 분류해가며 기준을 보완하며 학습하는 것이지만, 비지도학습은 반대로 기준이 주어지지 않은 상태에서 자료들을 분류해가며 새로운 기준을 찾아내 그 기준을 바탕으로 학습하는 것을 말한다.


 17. 강화학습

 강화학습이란 학습을 진행하면서 현재 할 수 있는 행동들 중 최대의 보상을 얻거나 최소의 위험을 감수하는 방향으로 학습하는 것을 말한다.


(2) State more than 15 things that you know/can/find ...  after you studied the first 4 Chapters.


1. 선형대수학과 관련된 ‘Sagemath’ 언어를 다룰 수 있습니다.

2. ‘Sagemath’ 언어에 옵션을 추가하여 활용할 수 있습니다.

3. 행렬식(Determinant)을 순열의 의미로부터 구할 수 있습니다.

4. 역행렬을 행렬식과 수반행렬을 이용하여 구할 수 있습니다.

5. 점과 평면사이의 거리를 유도하는 새로운 방법을 깨달았습니다.

6. 고차원계에서 경사를 표현할 수 있는 방법을 깨달았습니다.

7. 외적(Cross Product)에 대한 명확한 정의를 내릴 수 있습니다.

8. 미적분과 관련된 ‘Sagemath’ 언어를 다룰 수 있습니다.

9. 선형대수학과 미적분의 연결 관계를 새롭게 깨달았습니다.

10. 통계학과 관련된 R 언어를 다룰 수 있습니다.

11. 포아송 분포와 지수 분포를 활용할 수 있습니다.

12. 다양한 분포를 R 언어를 이용하여 계산할 수 있습니다.

13. 두 개의 확률 변수를 이용한 확률 함수를 다룰 수 있습니다.

14. 공분산과 상관계수를 구할 수 있습니다.

15. 베이즈 정리를 이용하여, 사후확률을 계산할 수 있습니다.

16. 인공신경망에 대하여 설명할 수 있습니다.

17. 주성분분석(Principle Component Analysis)의 개념을 이해하였습니다.

18. 활성화 함수가 인공신경망에서 행하는 역할을 설명할 수 있습니다.

19. 퍼셉트론에 관한 내용을 설명할 수 있습니다.

20. 라그랑주 승수법의 개념을 이해하였습니다.

... 


1.Q:AI 를 이해하기 위하여 수학을 배우는 이유는 무엇일까?

1. 4차 산업혁명으로 넘쳐나는 데이터를 통한 Data Science와 Data Driven Science가 발전됨에 따라 AI도 같이 발전하고 있습니다. AI는 초기에 이미지 데이터를

입력받았습니다. 교수님의 인공지능을 위한 기초수학 교재 Part 0 MNIST 데이터셋을 활용한 손 글씨 숫자 인식 (패턴인식)에도 나왔듯이, 이미지는 여러 픽셀로 쪼개져 RGB색깔 요소를 수치로 갖고있는 하나의 벡터값입니다. 이 벡터값들이 신경망을 거쳐 사과사진을 보고 사과라고 인식하는 공부를 하는 것입니다. 여기서 신경망은 선형연립방정식 형태로 이루어져 있기에 AI는 초기부터 수학공부를 해온 것입니다. 또한, 주어진 데이터를 통해 원하는 결과값을 출력하기 위해서는 Mathematical Modeling이 필수적입니다. Modeling한 것을 Mathematical Solution을 산출하고 Interpretation of Result 과정을 통해 결과를 도출합니다.


느낀점: 글쓴이와 동일하게 저도 4차 산업혁명은 더 이상 먼 얘기가 아니고 현재진행형이라고 생각합니다. 그런 점에서 4차 산업혁명을 살아가는 데 4차 산업혁명의 핵심인 인공지능을 이해하는 것은 필수입니다. 인공지능을 위한 기초 수학을 배우면서 인공지능이 작동하는 원리와 활용되는 수학적인 개념들을 깊이 이해하는 것이 인생에 큰 도움이 될거라고 생각합니다.

... 


2.Q: 해가 존재하지 않는 연립방정식의 optimal solution은 어떻게 구하나?

1. 주어진 데이터에 가장 근사한 직선 1의 계수 a,b를 구하는 방법에 대하여 알아보자. 주어진 데이터의 점 (x1,y1), (x2,y2), (x3,y3)를 식 y=a +bx 에 대입하면 2개의 미지수 a,b를 갖는 연립방정식을 얻는다. 이 식은 Ax=b 형태로 쓸 수 있다. 이 식에 양변에 A^T를 곱하면 A^TAx=A^Tb를 정규시스템이라 하며 n개의 데이터의 점에 가장 근사한 직선 y=a+bx를 구할 수 있는 다음 정규시스템을 얻을 수 있다.

느낀점: 질문자의 답변에 교수님 께서 디테일하게 설명을 해주셨다. 해가 갖지 않는 연립방정식의 최소제곱해를 찾는 문제는 통계적 분석에 있어서 기본적인 모델이라고 볼 수 있으며 비선형적인 관계를 갖는 두 변수의 관계를 찾는 데 유용하게 쓰인다. 이는 모든 데이터 분석과 시계열 분석등 다양한 데이터 분석에 쓰일 수 있다.


3.Q:거듭제곱법에 관한 생각


1. m차 정사각행렬 A에 대하여, Ax=x를 만족시키는 m x 1행렬 x가 항상 존재한다. 이때 이 x를 행렬 A의 eigenvector라고 하고 를 대응하는 eigenvalue라고 한다. (A-I)x =0이므로 A-I가 역행렬이 존재하지 않음을 이용하면 eigenvalue와 대응하는 eigenvector를 구할 수 있다. Ax=x 양변에 임의의 스칼라 k를 곱하면 kAx=kx, A* kx=kx, A(kx)=(kx)가 된다. 따라서 구한 eigenvector에 대해 임의의 스칼라 k배한 벡터 모두 해당 eigenvalue의 eigenvector 그룹이 된다. 편의상 1행 성분이 1인 경우로 한정하고 생각하기로 한다. Eigenvalue와 eigenvector의 정의에 대해서 A^n의 eigenvalue는 ^n 이며 eigenvector는 x이다.

2.Eigenvector에 대해서는 이와 같이 자명합니다.그런데 예제에서 교수님께서 제시하신  (1,1,1)벡터는 A의 eigenvector가 아니잖아요~예제의 풀이의 결과를 보면 A를 거듭제곱하고 (1,1,1)에 곱한 결과로서 eigenvector가 찾아진다는 이야기같은데 어떻게 가능한지 궁금합니다.

3.이것은 큰 크기의 음아닌 행렬에 대한 <가장 큰 고유벡터와 그에 대응하는 고유벡터를 쉽게 찾는 Power Method> 에 대한 설명으로 ... 전체 설명은 본 강좌의 범위가 아니므로 ... 이해 할 자료만 주고 . (강좌의 수준을 벗어나는 사족의 질문이 처음 부터 너무 많으면 다른 학생들이 당황하니까 ) 나중에 내 연구실 32304에 오시면 설명해 줄께요) 지금은 물어본 내용들에 대해 간단하게 답만 드립니다^^


느낀점: 거듭제곱법에 대한 토론인데 (1,1,1)벡터는 A의 eigenvector가 아니지만 A를 거듭제곱하고 (1,1,1)을 곱하면 eigenvector가 찾아진다는 내용이다. eigenvector에 대한 이해도가 낮았지만 이 토론을 보면서 eigenvalue와 eigenvector 내용을 다시 복습하게 되었고 거듭제곱법을 완벽하게 이해하지 못했지만 찾아보면서 이런 방법이 있다라는 것을 알게 되었다.


4.Q:Tell me about  Newton's Method

1.주어진 함수의 그래프를 그린 후, Newton의 방법에 의하면 그 함수가 축과 만나는 근(무리수 값의 근)의 근사값을 소숫점 이하 몇 번째 자리까지든지 원하는 대로 정확하게 구할 수 있다.


2.최적화문제를 푸는 계산방법은 대개 반복법(iterative method)으로, 초기 근사해로부터 시작하여 특정한 반복단계를 거쳐 이전보다 나은 근사해들을 생성한다. 위의 그림에서 곡선 를 생각하자. 을 방정식 의 근 에 대한 첫 번째 근사값이라 하자. 그럼 은 점 에서의 곡선 에 대한 접선의 방정식이다. 그래프를 보고 을 에 적당히 가까운 값으로 선택하면, 이 접선은 보통 축과 점 에서 만나는데, 그 점의 좌표 는 보다 에 더 가까운 근사값이 된다. 따라서 위식에  를 대입하면, 을 얻는다. 다시 를 첫 번째 근사값으로 생각하고 다음 접선을 이용하면  를 얻는다. 이 과정을 반복하면 공식, 을 얻게 된다. 이 Newton의 공식을 반복하여 사용하면, 원하는 근을 소숫점 이하 몇째 자리까지라도 필요한 오차 이내로 정확하게 구할 수 있다.


느낀점: Newton’s method에 대해서 이해가 없었지만 최적화 문제에 있어서 유용하게 사용되는 방법이라는 것을 배웠다. 함수의 첫 번 째 미분값을 알 수 있으면 반복 작업을 통해 근에 근접한 해를 구할 수 있다는 것을 배웠다. 




5. Q: Tell me about SVD

고윳값 분해는 대각화가능한 정사각행렬인 경우에만 정의되는 개념이다. 따라서 (정사각행렬이 아닌) 일반적인 행렬의 경우에 대해서도 고윳값 분해와 유사한 행렬 분해가 존재하는지 생각해 볼 수 있다. 임의의 행렬 A에 대해서 A^TA와 AA^T 는 대칭행렬이므로 직교 대각화가 가능하다. 이를 이용하면 다음의 중요한 행렬분해인 특이값 분해(singular value decomposition, SVD)를 얻을 수 있다.


느낀점: 정사각행렬이 아닌 일반행렬의 경우에 고유값 분해와 같은 분해가 이루어질 수 있는지 궁금했는데 임의의 행렬 A를 A^T와 AA^T로 표현해서 생각해보면 이들은 대칭행렬이므로 singular value decomposition을 할 수 있다는 것을 알게 되었다. 무조건 정사각행렬이 아니라고 해서 분해를 못하는 것이 아니고 대칭행렬이라는 점을 이용해서 직교대각화 함으로써 SVD를 할 수 있다는 것을 배웠다.

6.Q: 데이터 사이언스에서 선형 회귀와 같은 모델에서 Least square를 구하여 오차를 최소화 하는 방식으로 파라미터를 최적화를 하는 것으로 알고 있는데요. 보통 데이터 셋이 매트릭스 형태로 되어 있고, 이는 선형 연립 방정식으로 풀 수 있다고 생각을 합니다. 이 때, least square를 최소로 하는 해를 구하는 것이 선형 연립 방정식이 해를 갖지 않을 때에 해당하는 것일까요?

1.2. least square 법으로 에러가 최소인 해를 구하는 것은 ... (1) 선형 연립 방정식이 해를 갖지 않을 때 는 최적해를 주고, (2) 만일 선형 연립 방정식이 유일해를 가질 때는 ... 같은 알고리즘으로 얻어지는 least square 해가 ... 바로 그 유일해를 줍니다.

따라서 least square 해법은 모든 연립방정식에 대해 최적해 또는 유일해를 구하는데 적용 가능하여 중요한 것입니다.

2.제 생각으로는 선형 연립 방적식이 확실한 해를 가지지 않을 때에 해당한다고 생각합니다. 제가 책에서 본 최소제곱법을 이용한 문제가 있는데 집 값을 예측하는 문제였습니다. 매트릭스의 열은 위치, 방 개수, 집 주인의 median income 등등으로 이루어져있었는데 이 때 가중치를 계속 조정해서 가장 오차가 적은 직선을 구했습니다. 그리고 이 문제의 목적은 정확한 집값(정확한 해를 갖지 않음)은 당연히 예측할 수 없으니 머신러닝을 이용해 최대한 가까운 집값을 예측하는 것이였습니다.

3.연립1차방정식의 행렬이 정사각행렬이고 가역행렬이면, 그 경우 최소제곱해는 바로 그 유일해가 됩니다. 따라서 least square 해법은 모든 연립방정식에 대해 최적해 (또는 유일해가 존재 할 때는 유일해)를 구하는데 적용 가능하여 중요한 것입니다. 그렇게 Finalize 하세요^^

느낀 점: 최소제곱해가 유일한 해를 가지는 행렬에 대해서도 적용 가능한지에 대한 토론이었는데 그동안 최소제곱해 방법은 유일한 해가 없을 때 사용하는 줄 알았는데 교수님의 답변을 듣고 모든 연립방정식에 대해 적용 가능한 것이라는 것을 알게 되었다.

7.Q: 고유값 분해와 특이값 분해의 차이

1.고유값 분해는 대각화가 가능한 정사각행렬에 한해서 시행할 수 있다는 점이 있습니다.

하지만 특이값 분해는 일반적인 행렬이라면 어떤 행렬이라도 사용 가능합니다. 그 이유는A^T*A와 A*A^T는 정사각행렬이자 대칭행렬이기 때문에 직교대각화가 가능해지며, 고유값과 고유벡터를 언제나 구할 수 있기 때문입니다. 그리고, 무엇을 이용해 분해하는가 입니다.

고유값 분해는 A의 고유값과 고유벡터를 이용해 A를 분해하는 것이지만, 특이값 분해는 A^T*A와 A*A^T 각각의 고유값과 고유벡터를 이용해 A를 분해하는 것입니다.


느낀점: 고유값 분해와 특이값 분해의 차이에 대한 토론이다. 고유값 분해는 행렬이 정사각행렬일때만 적용되고 특이값 분해는 일반 행렬에 대해서도 적용 가능하다. 이 토론을 통해서 고유값 분해와 특이값 분해에 대한 이해도를 높일 수 있었다.



8.Q:Final] :Python 기초 강의 링크, The Python Math Module by 신재열, 민재필, 이상구 교수님

1.우선 우리 책의 문제 들을 ... 제공한 파이썬 기반의 SageMath 언어로 ... 여러분 전공이나 AI 와 관련한 문제 ... 아니면 좀 더 큰 사이즈나, 좀 더 복잡하거나, 좀 더 흥미있는 문제 ... 또는 여러분 전공 사적에 나오는 문제 에 대하여 ... 풀어서 ... 여러분들의 문제와 답을 공유 하면서 ... 일단 기초 실력을 키워 두세요^^

느낀점: 신재열 학우가 올린 파이썬 강의 동영상을 실제로 시청하고 파이썬에 대해서 공부를 하게 되었다. 데이터 분석과 여러 프로그래밍에 있어서 파이썬은 다른 프로그래밍 언어에 비해서 배우기 쉽고 문법이 간단하다는 장점이 있는데 이를 바탕으로 프로젝트를 할 수 있어서 많은 것을 배우는 계기가 되었다.


9.Q:AI 기계학습 '적자생존' 자체 진화 설계 | 사이언스모니터

1.과학자들은 소프트웨어 입력 없이 세대를 거쳐 발전을 개선하는 AI 프로그램을 만들었다. 이 프로그램은 며칠 만에 수십 년 동안의 AI 연구를 반복했다. 설계자들은 언젠가 AI에 대한 새로운 접근법을 발견할 수 있을 것으로 기대한다.

AI 알고리즘을 구축하는 데 시간이 걸린다. 언어를 번역하고 자동차를 운전하는 데 사용되는 일반적인 유형의 기계 학습(ML) 신경망(neural networks) 모델을 사용한다. 이 네트워크는 뇌의 구조를 느슨하게 모방하고 인공 뉴런 사이의 연결 강도를 변경해 훈련 데이터를 자가 학습한다.

더 작은 뉴런 회로는 도로 표지판을 발견하는 것과 같은 특정 작업을 수행한다. 인간이 신경망 연결을 최적화하는 데는 몇 달이 걸릴 수 있다. 최근 몇 년간 과학자들은 그 몇 단계를 자동화해 프로세스를 가속화했다. 그러나 대부분의 프로그램은 여전히 인간이 설계한 기존 회로를 연결하는 데 의존한다. 이는 엔지니어의 상상력과 기존의 편견으로 인해 결과가 여전히 제한됨을 의미한다.

구글의 컴퓨터 과학자 코크 르(Quoc Le)와 동료들은 오토ML-제로(AutoML-Zero)라는 프로그램을 개발했다. AutoML-Zero는 고등학생 수준 기본적인 수학적 개념만을 사용해 인간의 입력이 거의없는 AI 프로그램을 개발할 수 있다.


느낀점: 인공지능에 대한 깊은 이해가 없는 저에게 많은 것을 알려주는 기사였습니다. 인공지능의 수준이 제가 생각하는 것보다 훨씬 높다는 것을 알 수 있었고 빠르게 성장하는 인공지능 시대에 살면서 인공지능을 두려워하기 보다는 인공지능에 대한 이해도를 높여야한다는 동기부여가 되었습니다.


10.Q:Talk about (Discuss) 26. Gradient Descent Algorithm(경사-기울기 하강법, 傾斜下降法)에 대하여 간략하게 설명하시오.

1.경사하강법이란 비용함수를 최소화하여 최소한의 loss 값을 얻기 위한 기법입니다. 오차 그래프를 미분한 값(그래디언트)를 반복해서 빼다보면 오차그래프가 최소인 점에 도달하게 되는데 그것을 경사하강법이라고 합니다. 그리고 더 정확한 값을 구하기 위해 확률적 경사하강법, 미니배치 경사하강법 등 여러가지 경사하강법이 존재합니다.

느낀점: 인공지능 강의를 통해 경사하강법이 인공지능 딥러닝에 있어서 핵심적인 방법이라는 것을 알게 되었다. 답변한 학우분의 설명을 보면서 경사하강법에도 다양한 방법이 있다는 것을 알게되었다.

11.Q:극대극소 판정법과 행렬 이론의 연결고리 정리한 것 by 신재열, 이상구 교수님

1...행렬의 대각화 를 생각해보면, 주어진 행렬에 닯음인 대각선 행렬 은 같은 행렬식을 가집니다.

그럼 원래 행렬의 det 에 대한 얘기 ... 는 ... 주 대각선 성분이 고윳값인 행렬의 행렬식, 더 나아가 principal minor 에 대해서도 생각 할 수 있을 것이다는 추측으로 부터, 위의 정리를 만들어서 ... 여러분이 쉽게 ... 다변수 함수의 극대 와 극소 에 대한 판정을 할 수 있게 해 준 것입니다. 물론 증명은 관련 수학을 배운 사람에게는 쉬운 내용입니다,

2.일반적으로 행렬식을 구한다는 것은 쉬운 일이 아니다. 하지만, 대각화, 나아가 직교대각화가 가능하다면 대각선 성분만으로 행렬식을 구할 수 있고, 특히 직교대각화의 경우 대각선성분이 eigenvalue들이기 때문에 eigenvalue와 eigenvector의 중요한 성질까지 활용이 가능하다. 미적분에서 이차형식의 주축정리하고 연결이 되며, 어렵게만 보이던 극대극소 판정법이 이차형식과 Hessian과 더불어 깔끔하게 정리가 된다.

느낀점: 그동안 극소값, 극대값을 구하는 방법에 있어서 고등학교 수준이었지만 헤시안을 사용해서 구할 수 있는 방법에 대해서 배우면서 더 깔끔한 방법이 있다는 것을 알게되었다.


12.Q:<캠프파이어 in Digital > 세대 ?

1.인공지능에 필요한 ... 수학 은  논리적인 communication  이랍니다.  문제 풀이는   그 중  아주 작은 일부입니다.   특히  여러분이 K-12  에서 엄청나게 많은 시간 훈련한  ...지필 로  수학 문제 풀어 답을 구하는 것은  ... 그 중  아주  아주  작은 부분 입니다.

여러분이 지금까지 배운 수학은  ... 이제 수학에 대해 서로 얘기 할 수 있을 정도의  ... 기초 체력을 ...  준비한 것 으로 생각하시고 ... 이제 진짜 ... 공부 ... 수학에 대한  chatting  을 하면서 ... 여러분이 평생 사용할  수학 지식을 ... 큰 그림을 ... 이해 하시기 바랍니다.

느낀점: 수학을 자신없어 하지만 이 글을 보고 앞으로 수학과 친해져야 겠다는 생각을 하였다.


13.Q:다변수 함수의 Taylor정리에 대한 질문 <--- [신재열 군의 질문에 대한 답] by SGLee (파일 첨부) by 신재열, 이상구 교수님

1.위 본문에 첨부로 질문에 대한 자세한 답을 타이핑하여 줍니다^^ [신재열 군의 질문에 대한 답] (미분가능한) 다변수 함수에 대한 Taylor 근사를 표현하는 훌륭한 방법은 우선 열벡터 와 행벡터 을 사용하여 1계(1st order) Taylor 근사가 로 표현된다는 것을 이용한다. 여기서 두 번째 항이 행렬곱으로 표현된 것이다. 다음 변수 함수에 대한 Taylor 근사에서 2계항(second order term)까지 행렬표현으로 나타내면 아래와 같다. 여기서 는 의 대칭행렬인 헤시안(Hessian) 행렬 이다. 헤시안(Hessian) 행렬 : 위의 식에서 , , 로 두면 다음을 얻는다. 정리. 다변수 함수에 대한 Taylor 정리의 행렬 표현 다변수 함수 가 연속인 편도함수를 가지면, 적당한 가 존재하여 다음이 성립한다. 만일 연속인 2계 편도함수를 가지면, 적당한 가 존재하여 다음이 성립한다. 또는 ▪ (위 식에서 , , , 일 때) 점 근방에서 에 가까운 1차식인 선형근사식(벡터형식 표현)은 다음과 같다. ▪ 마찬가지로 점 근방에서 에 가까운 2차식인 이차근사식은 다음과 같다.

느낀점: Taylor 정리가 인공지능에 어떻게 적용되는지에 대해서 배울 수 있는 계기가 되었다. 완벽하게 이해하지는 못했지만 기본적인 개념을 익힐 수 있었고 앞으로 더 수학지식을 쌓아야겠다는 생각을 하였다. 


Q14:[Final OK by TA] 고유값 분해에 있어서 필요조건이 반드시 대칭행렬 인것인가요? 또 eigen decomposition이 어떤 문제를 해결할 때 유용한지 궁금합니다 by 민재필, 이상구 교수님

1.행렬의 직교대각화가 여러분이 인공지능을 하려면 꼭 알아야 하는 내용입니다. 1. 복소행렬인 경우 Unitarily 대각화 가능 이라고 합니다. (실수 행렬일 경우 대칭행렬은 그것의 특수한 경우입니다) ... 복소수 행렬인 경우는 Normal matrix (A^* A = A A^* 인 행렬이 Normal Matrix 입니다) 가 Unitarily 대각화 가능 의 필요 충분 조건입니다^^ 2. 복소행렬인 경우 Unitarily 대각화 가능에 대응 하는 실수 행렬인 경우가 직교대각화 입니다. (모든 경우는 복소행렬에 대해 증명하고, 실수 행렬은 그의 특수한 경우로 성립한다고 처리합니다. 이유는 대수학의 기본법칙 ... 때문이기도 합니다.) <--- 대수학의 기본법칙에 대하여 설명해 보세요. 3. 고윳값 분해는 일반적으로 실수 대칭행렬 아니어도 ... 되는 경우가 많이 있습니다. 예가 Hermitian 행렬입니다. 3. 직교대각화 또는 Unitarirl 대각화 및 고윳값분해 의 장점도 위에서 보듯이 다양합니다. 4. 많은 계산을 쉽게 하게 해주고, 5. 또 행렬 A 의 문제를 고유벡터들의 행렬곱의 (고유값을 이용한) 일차결합으로 이해할 수 있게하고, 6. 또 행렬 A 의 문제를 rank 1 행렬들의 합으로 이해 할 수 있게 해 줍니더. 즉 복잡한 문제를 아주 단순한 문제로 바꾸어 주어, 컴퓨터를 이용하여 다루기 ... 아주 쉽게 해 줍니다^^ 등 등 무수히 많은 장점이 잇습니다.

느낀점: 고유값 분해와 행렬의 직교대각화에 대한 이해수준은 교재에 나와있는 것을 암기하는 수준밖에 되지 않았지만 이 수학적 개념이 어떻게 응용되는지 설명을 듣고 난 이후에는 이해도가 높아지는 것을 경험 할 수 있었다.


15.Q:[Final] Gradient descent method 와 Newton's method 차이

1.안녕하세요 교수님.

 Gradient descent method 와 Newton's method 차이 질문

제가 학습을 통하여 정리한 바로는

1.  gradient descent 방법, Newton's method 둘 다 미분의 원리를 사용하여

  <---  하나는 함수의 극대, 극소를 찾는 방법이고 나머지 하나는 함수값이 0이 되는 해를 찾는 방법이라고 이해를 했는데요.

이와 관련되어서 Quasi-Newton method라는 것이 또 있더라구요.

  Quasi-Newton method 은 각 반복에서 objective function에 대한 gradient만 필요로 한다는 점과,

 Newton's method 보다 계산적인 부담이 덜 하다는 것만 알고 그 원리에 대해서는 제 이해력이 달려서 나중에 공부하기로 하겠습니다...

1.Newton method의 경우 설명해주신 것처럼 함수의 해(f=0)를 찾는 방법인데요,

f=0 인지점을 f'=0 인지점을 찾는 방법으로 바꿔서 gradient method 방법처럼 함수의 극소점을 찾는 방법으로도 사용될 수 있다고 알고 있습니다.

Newton method를 식으로 정의할 경우 역행렬을 구해야하는 부분이 있는데 역행렬 계산에 비용이 많이 들어

이를 근사한 값으로 치환하여 푸는 방식을 Quasi-Newton Method라고 알고 있습니다.

답: [참고] Quasi-Newton method는 gradient method 와 Newton's method의 중간이라고 볼 수 있습니다.


수렴속도(convergence rate) 면에서

A. gradient method는 linear convergence rate

B. Newton's method는 quadratic convergence rate

C. Quasi-Newton method는 super-linear convergence rate

**********************

1. 최적화 문제를 푸는 Newton's method의 경우 안승현 학생이 위에서 언급한 것처럼

원래 함수의 해 (f=0)를 찾는 방법에서 최적화 문제의 최적 조건인 도함수가 0 (f'=0)인 방정식에 적용한 것입니다.

2. 이를 자세히 살펴보면 Taylor 정리에서 원래 함수 대신 이차근사식(quadratic approximation)을 minimization 하는 것으로도 볼 수 있습니다. (이부분이 좀 더 직관적인 설명입니다.)

느낀점: gradient descent method 와 newton method 의 차이에 대한 설명이다. 이 discussion을 통해 gradient descent method는 linear convergence rate에 대한 method이고 newton method는 quadratic convergence에 대한 method인 것이라는 차이에 대해서 배웠다. 또 새로운 개념인 Quasi-Newton method에 대해서 접하면서 다른 방법도 있다는 것을 알게되었고 공부를 더 심도있게 해봐야겠다는 생각이 들었다.


1. 벡터공간의 충족요건 – 신**(2013****84)

질문 : 어떻게 부분공간이 본공간에 속해있음을 u+w와 u의 Scalar배가 부분공간에 속한다는 것만으로 증명할 수 있는가?

답변 : 부분공간이 본공간에 속함을 증명하기 위해서는, 먼저 본공간이 지니는 속성을 부분공간이 그대로 지니고 있다는 것을 보여야 한다. 그리고 부분공간은 본공간이 지니고 있지 않은 외적인 속성을 지닐 수 없다. 일반적으로 본공간에서 성립하는 연산 8가지(+, -, 0, ..etc)는 부분공간에서도 그대로 성립한다. 사실상 이 8가지 연산은 공간자체가 지니고 있는 속성이다. 그렇기에 나머지 2 부분만 증명을 하여, 부분공간이 본공간에 속해있음을 증명할 수 있는 것이다. 간단한 예시로 3차원 공간에 한 평면이 있다고 가정해보자. 그러면 평면은 3차원 공간에 대한 부분공간이라고 말할 수 있다. 아무리 그 부분공간에서 u+w와 u의 Scalar배를 연산하더라도 부분공간을 벗어날 수 없다. 부분공간에서 이미 본공간에 종속되어 있다는 것과 본공간이 지니는 속성 8가지를 부분공간이 지닌다는 것이 전제로 깔려 있으며, u+w와 u의 Scalar배의 연산을 통해 부분공간 자체의 경계가 존재한다는 것이 명확해져, 공간이라는 의미를 확고하게 한다. 결국 2가지를 보여서, 부분공간이 본공간에 속해있음을 보일 수 있는 것이다.


2. RREF 계산 방법에 대한 질문 – 황**(2019****19)

질문 : 일반 행렬을 RREF로 바꾸는 계산방법은 무엇인가?

답변 : 행렬의 RREF를 구하기 위해서는 행렬의 REF를 구하는 과정이 요구된다. RREF를 구하려면 REF에서 Pivot의 값이 모두 1이며, Pivot이 속해있는 열은 Pivot 값을 제외한 모든 성분이 0이 되도록 ERO(Elementary Row Operation)를 사용해서 변형해야 한다. 바로 그 결과가 RREF가 된다.


3. (QnA 토론) 행렬과 인공지능; 행렬의 역사 : ... AI 를 이해하기 위하여 수학을 배우는 이유는 무엇일까? - 이**(2019****68)

질문 : AI 를 이해하기 위하여 수학을 배우는 이유는 무엇인가?

답변 : AI는 다양한 자료들을 이용하여, 입력된 정보로부터 결과물의 방향을 정한다. 즉 입력과 출력의 관계가 AI의 기본 구조이다. 입력이 동일하더라도, 메커니즘이 어떠한 형태를 지니고 있느냐에 따라 다른 결과가 출력될 수 있다. 바로 이 메커니즘은 행렬(Matrix)이라고 할 수 있다. 행렬의 값을 많은 데이터로부터의 학습을 통해 미세하게 조정하여, 입력에 대한 원하는 출력을 이끌어내는 것이다. 이러한 점에서, AI를 이해하기 위해 수학을 학습해야 하는 이유가 명백해진다.


4. 역행렬 구하기 문제 – 조**(2016****76)

내용 정리 : 역행렬을 구할 수 있는 방법에는 대표적으로 2가지가 있다. 첫 번째는 기본행렬(Elementary Matrix)을 통한 방법, 두 번째는 수반행렬(Adjoint Matrix / Adjugate Matrix)와 행렬식(Determinant)를 이용하는 방법이다. 첫 번째는 [A : I] 행렬을 RREF하여 [I : B]가 되는 경우, B가 A의 역행렬이 된다. 만약 행렬 A를 RREF하여 단위행렬로 만들 수 없다면, A의 역행렬은 존재하지 않는다. 두 번째는 adj(A)/det(A)를 계산한 값이 A의 역행렬이다. 만약 det(A)가 0이라면, 역행렬은 존재할 수 없는 것이다.


5. 행사다리꼴 관련 질문 – 김**(2020****67)

질문 : [A : B]와 [A : B].rref()가 서로 어떤 수학적 연관성을 지니고 있는가?

답변 : 첨가행렬 [A : B]를 RREF하여 얻은 첨가행렬 [C : D]는 전 행렬과 해집합이 동일하다. 즉 전자를 계산하나 후자를 계산하나 동일한 결론이 나온다는 것이다. 이 두 행렬의 관계를 Row Equivalent라고 말한다. 후 행렬을 ERO(Elementary Row Operation)을 이용하여 전 행렬로 만들 수 있는 관계로 해석할 수도 있다.


6. RREF(사다리꼴행렬)에 대한 추가 탐구 – 김**(2020****67)

내용 정리 : ERO(Elementary Row Operation)은 행연산을 위한 기본 연산자로, Replacement(대체), Scale(곱, Scalar배), Interchange(상호교환)이 있다. Replacement는 한 행을 다른 행의 배와 연산하여 대체하는 연산자이다.(R1+kR2 --> [1]) Scale은 행의 값을 특정한 값으로 곱하는 것이다.(kR1 --> [1]) Interchange는 두 개의 열을 서로 맞바꾸는 것이다.(R1 <--> R2) 이러한 세 가지 연산자들을 이용하면 RREF를 얻어낼 수 있으며, 기본 행 연산자를 적용하기 전과 후의 행렬은 동등(Row Equivalent)하므로 해집합(Solution Set)이 같다.


3. Gram-Schmidt 정규직교화 방법


Gram-Schmidt 정규직교화 방법을 처음 봤을 때, 고등학교 때 배웠던 정사영이 떠올랐다. 실제로 정사영을 구하는 방법을 반복적으로 계산하기 때문에 방법 자체는 외우기 편하다.





 Gram-Schimidt 정규직교화 방법은 다음과 같다.


집합 S={x1, ... , xn}을 Rn의 임의의 기저라 하자. 그러면 S로부터 얻어지는 정규직교기저가 존재한다.


먼저 Rn의 기저 S로부터 직교집합 T={y1, ... , yn}을 다음과 같은 단계로 계산한다.


1. y1 = x1

2. y1에 의해 생성되는 부분공간을 W1이라고 하고

   

3. y2에 의해 생성되는 부분공간을 W2이라고 하고

   


                ...

4. n단계까지 다음의 방법을 반복한다.

   


위의 단계로부터 얻어지는 T = {y1, y2, ..., yn}은 서로 직교인 직교집합이다.


의 과정으로 각각의 크기를 1로 만들면, {z1, z2, ... , zn}은 Rn의 정규직교기저이다.



4. 이차곡선과 원뿔곡선


 이차곡선의 기본 형태는 이다. 이는 두 변수 x, y를 갖는 이차곡선이라는 뜻이다. 2차원에서 표현해야 하므로 변수가 2개 쓰였으며, 이차항과 일차항 그리고 상수가 있을 수 있기 때문에 이다.


 이를 행렬로 표현하면 다음과 같다.



 여기까지는 고등학교에서도 대부분 배운 내용이고, 그나마 행렬로 바꾸는 법을 새롭게 배운 수준에 그친다.

 하지만 원뿔곡선이라는 개념이 새로웠다. 원뿔곡선이란 평면이 원뿔과 교차될 때 생기는 곡선들을 일컫는 말로, 여기서 원뿔은 정확히는 모래시계처럼 되어있다.

 실제로 원뿔과 평면을 어떻게 겹치느냐에 따라 원, 포물선, 타원, 쌍곡선이 생긴다.

 또한 이차곡선의 방정식으로 만들어지는 그래프가 곡선이 아닌 한 점, 한 직선 또는 한 쌍의 직선으로 이루어져있거나 아예 존재하지 않을 때가 있다. 그러한 그래프들을 퇴화 원뿔곡선이라고 한다.

 밑의 그림은 실제 원뿔곡선들이 어떻게 생기는지 보여주는 그림이다.

 


 이렇듯 그리 큰 비중을 가지지 않는 개념이지만 이차곡선이라는 개념의 연장선이라 볼 수 있는 원뿔곡선이라는 것은 내게 있어 신선한 충격이였다.


5. 역행렬

 어떤 행렬 A에 대하여 AB = In = BA를 만족하는 행렬 B가 있다면, B=A-1을 역행렬이라고 한다.

 개념은 매우 단순하기 그지없으나, 이 행렬을 구하는 것은 상당히 어렵다. 단순히 때려맞추는 수준으로는 구하는 것 자체가 불가능에 가깝다.

 그렇다면 역행렬을 그나마 쉽게 구할 수 있는 방법이 있을까? 다행히도 있긴 하지만 행렬 A가 n*n 크기의 정사각행렬이여야 한다는 제한조건이 달려있다. 그 조건이 성립할 때, 크게 2가지가 있다.

 첫 번째는 RREF[A: I]를 이용하는 것이다. RREF[A: I]을 계산한 후 생기는 n * 2n 행렬에서, I 부분에 있는 행렬이 곧 A의 역행렬이라는 것이다.

 첫 번째 방법으로 역행렬을 구하는 코드는 아래와 같다.


A = matrix([[1, -1, 2], [-1, 0, 2], [-6, 4, 11]])

I = identity_matrix(3)

print("A =")

print(A)

print()

AI = A.augment(I).rref()   # 첨가행렬 [A : I] 의 RREF 구하기

print("RREF[A: I] =")

print(AI)

print()

A2 = AI.submatrix(0, 3, 3, 3)   # A.submatrix(a, b, c, d)

# 행렬의 (a+1, b+1) 성분부터 c개의 행, d개의 열로 이루어진 부분행렬 구하기

print("inverse of A =")

print(A2)


두 번째 방법은 수반행렬을 이용해 역행렬을 구하는 것이다.

수반행렬이란, n차의 정사각행렬 A=[aij]의 성분 aij에 대한 여인사를 Aij라고 할 때, 행렬 [Aij]를 A의 수반행렬이라고 한다. 기호로 나타내면 adjA이다.

 이렇게 수반행렬을 만들고 난 후 A의 역행렬을 구할 수 있다. 단, A는 가역행렬이여야 하는 조건이 달려있다. 수반행렬을 이용해 A의 역행렬을 구하는 공식은 다음과 같다.


 이를 구하는 코드와 그 결과는 아래와 같다.

A = matrix([[3, -2, 1], [5, 6, 2], [1, 0, -3]])

dA = A.det()   # 행렬식 구하기

adjA = A.adjugate()   # 수반행렬 구하기

print("inverse of A = (1/dA)*adjA =")

print((1/dA)*adjA)  # 수반행렬을 이용한 역행렬 구하기


 이와 같이 역행렬을 그나마 쉽게 구하는 방법 2가지가 있음을 알게 되었다. 하지만 이 방법을 쓰기 위해선 A가 정사각행렬이여야 함을 물론, 심지어 2번째 방법은 가역행렬이여야 한다는 조건까지 붙어서 일반적으로 쓰기에는 조금 난감한 방법들이다.

 그 외에도 특이값 분해를 이용해서 구할 수도 있지만 이 또한 정사각행렬에 가역행렬이라는 조건이 붙어있다. 어느 하나 만만하지 않다. 그래도 역행렬을 구할 수 있는 방법이 있다는 게 다행이라고 생각한다.


6. 뉴턴 방법(Newton's Method)

 실숫값 함수의 해(근사값)을 그래프(f(x))와 도함수(f'(x))를 이용해 어림짐작으로 쉽게 구하는 방법이다. 단, 처음 시작할 때 설정하는 초깃값이 r에 가깝지 않거나 적당하지 않을 경우 실제 구하려는 근과는 멀리 떨어진 잘못된 값을 구하게 될 수 있으니 주의할 것.

 근사값을 구하는 과정은 다음과 같다.


1. 실제 구하려는 근이 r이라 할 때, r에 적당히 가까운 값인 을 가정한다.

2. 으로 를 구한다.

3. 을 여러 번 반복하여 r에 매우 가까운 을 구한다. 이때 n은 적당히 큰 시도 횟수이다.

4. 마지막으로 구한 이 실제 구하려는 근과 극히 가까운 근사값이다.


7. 이변수 함수 극값 판별

 우선 f(x, y)의 이계도함수를 이용해 판별하는 방법이 있습니다. 방법은 다음과 같습니다.


(1) fxx(a,b)*fxy(a,b) – {fxy(a,b)}^2 > 0 일 때, fxx(a,b) > 0 이면 극솟값,  fxx(a,b)<0이면 극댓값이다.

(2) fxx(a,b)*fxy(a,b) – {fxy(a,b)}^2 < 0 이라면 안장점이다.


 하지만 이를 이용하지 않고 헤시안 행렬을 이용하는 방법도 있다. 헤시안 행렬을 이용해 극값을 판별하는 방법은 다음과 같다.

 

 (1) f의 헤시안 행렬을 구한다.

 (2) f의 헤시안 행렬에서 모든 고윳값을 구한다.

 (3) 고윳값들이 모두 양수이면 그 때의 f(a, b)는 극솟값이고, 모두 음수이면 극댓값이며, 섞여있다면(부정부호) 그 점은 안장점이다.


9. 조건부 확률과 몬티홀 문제

 몬티홀 문제란, 3개의 문 중 단 하나에만 선물이 있고 나머지 둘은 꽝인 상태에서 선물을 맞추는 문제이다. 다만 처음 선택했을 때, 진행자가 선택되지 않은 두 문 중 꽝 하나를 공개한 후 선택을 바꿀 것인지 아닌지를 묻는다. 이러한 규칙 하에, 과연 선택을 바꾸는 것과 바꾸지 않는 것 중 무엇이 더 이득인지 구하는 문제이다.

 그 답은 ‘바꾸는 것이 이득’이다. 만약 선택을 유지한다면 선물에 당첨될 확률이 처음의 확률인 1/3이 되겠지만, 만약 선택을 바꾸었을 때 선물을 받을 확률은 (2/3) * (1/(3-2)) = 2/3이다. 따라서 선택을 바꾸는 것이 확률적으로 이득이다.

 만약 문이 n개이며 선물이 있는 문은 여전히 1개라고 하자. 이때의 선물에 당첨된 확률을 구해보자. 선택을 안 바꾼다면 1/n이고, 선택을 바꾼다면 (n-1)/n * (1/n-2) = (n-1) / (n*(n-2))가 된다. 즉, 선택을 바꾸었을 때 선물을 받을 확률이 안 바꾸었을 때보다 1/(n*(n-2)) 만큼 크다.

 이 풀이는 조건부 확률을 이용한 것이다. 사실 이 문제를 처음 들었을 때는 별 차이가 있나 싶었지만, 확률을 배운 후에는 정말 큰 차이가 있음을 알았다.


10. 대수의 법칙과 카지노

 우선 대수의 법칙에 대해 알아보자. 시행 횟수를 n, 특정 사건 A가 일어날 횟수를 k라 하면, n이 한없이 커질 때 통계적 확률 P(A)는 수학적 확률 a에 가까워진다. 즉, 시행 횟수가 커질수록 통계적 확률이 수학적 확률과 거의 같아지게 된다는 말이다. 카지노는 이를 이용해 막대한 수익을 벌어들이고 있다.

 카지노 또한 돈을 벌기 위한 기업이다. 하지만 도박의 특성상 수익을 벌어들일지 아닐지 순전히 운에 달려 있을 것이라 생각할 지도 모른다. 실제로는 그렇지 않다. 수학적으로, 카지노가 돈을 벌어들일 확률은 돈을 잃을 확률보다 근소하게 크다. 수많은 사람들이 무수한 도박을 하므로 시행 횟수는 기하급수적으로 커지기 때문에 승률이 수학적 확률과 거의 유사해진다. 즉, 시행 횟수가 커질수록 카지노는 수익을 반드시 벌어들이게 된다. 이것이 카지노가 계속해서 영업이 가능한 이유이다. 확률을 이용해 수익을 벌어들이는 것이 가능하다는 걸 처음으로 깨닫게 되었다.


11. 조합

서로 다른 n개에서 중복 없이 k개를 택하는 방법의 수는 다음과 같다.

 

조합이 쓰이는 경우는 대게 어떠한 사건의 가짓수를 구하는 경우가 많다. 이러한 경우를 이용하는 직업들은 무수히 많지만 의외의 직업도 있다. 불꽃 연출가처럼, 예술가들 중 여러 경우의 수를 고려해 극적인 효과를 일으키기 위해 부단히 노력하는 사람들이 있다.


12. 심프슨의 역설

 일부의 면만 보여주는 확률을 믿으면 안 된다는 것을 단적으로 보여주는 예시인 역설이다.

 이 역설의 예시로, 두 야구 선수 A와 B의 승률 비교가 있다.

 

투수 A

투수 B

승률

승률

전반기

5

2

71.43%

3

1

75%

후반기

4

3

57.14%

7

5

58.33%

시즌 전체

9

5

64.29%

10

6

62.5%

 이처럼 전반기와 후반기 모두 투수 A보다 투수 B가 승률이 더 높지만, 막상 시즌 전체에서 보면 투수 A가 투수 B보다 승률이 더 높다는 역설적인 상황이 발생한다. 이는 확률 관련 거짓 명제들 중 를 참이라고 착각했기 때문에 발생하는 것이다.


 13. 조건부 확률과 제비뽑기

 상당히 유명할 수도 있지만 의외로 모르는 사람이 많은 문제이다. ‘제비뽑기를 할 때 언제 하는 것이 가장 유리한가?’이다. 이 문제의 답을 알기 위해서는 꽝과 당첨의 각 개수와 총 제비의 개수를 알아야 한다.

 이 문제의 답은 당연하게도 ‘언제 뽑든 똑같다’이다. 나중에 뽑았을 때의 확률을 구할 때는 앞에서 꽝 제비를 뽑았는지 당첨 제비를 뽑았는지도 고려해서 확률을 구해야 한다. 즉, 조건부 확률의 계산법으로 구해야 하며 실제로 확률을 구해보면 처음 뽑았을 때랑 전혀 다를 게 없다는 걸 알고 있다. 사람들은 나중에 뽑는 것이 불리하다고 종종 말하고는 하지만, 수학적으로 계산해보면 실제로는 아무 상관 없다는 걸 알 수 있다.


 14. 표본평균과 여론조사

  여론조사를 하는 집단은 많으며, 대표적으로 방송사에서의 여론조사가 있다. 통계에서 표본의 자료수가 부족하다면 자료 분석의 결과의 오차는 클 수밖에 없다. 하지만 표본평균의 이론에 따르면 모집단이 충분히 크면 그 분포는 정규분포에 가까워진다는 것이다. 정규분포가 어떤 형태로 구성되어 있는지는 이미 증명이 되어 있으므로, 조사한 자료의 분포가 정규분포에 가까울수록 그 자료의 경향을 더욱 정확히 알 수 있으며 신뢰도 또한 높아진다.

 따라서 여론조사를 할 때는 표본평균과 모집단, 그리고 정규분포와의 유사도가 무엇보다도 중요하다. 짧게는 정치적 문제에서 넓게는 기업 경영, 날씨 예측 등에서 쓰이기 때문에 여론조사의 정확도를 올리기 위해 현재에도 많은 사람들이 노력하고 있다. 표본평균은 마치 규칙이 없는 것처럼 보이는 자료들 사이에서도 규칙을 찾아내기 때문에 상당히 유용하다.


 15. 확률 및 통계와 보험 계리사

 보험 계리사는 보험 사업 전반에 걸친 수리 및 통계 분석 업무를 하는 직업으로, 국내 사회 제도와 경제 실정에 맞는 보험 상품을 개발하고 운용하는 것이 일이다. 이 일을 할 때 가장 중요한 것 중 하나가 바로 보험료를 결정하는 것이다. 보험료를 결정할 때, 지금까지의 이용 고객의 데이터를 분석해 고객들이 보험비를 청구하는 비율을 보고 보험료를 인상할지 동결할지 아니면 내릴지를 결정할 수 있다. 또한 개인 고객에 대해서도 사고가 발생할 확률을 계산해 낸 후, 그 결과를 보험료 결정에 반영한다. 이처럼 확률과 통계는 경영, 특히 예측할 수 없는 경우에 더더욱 중요한 가치를 지니게 된다.

 


 16. 인공지능의 학습

 인공지능의 학습의 종류는 총 3가지가 있다.


지도학습: 어느 정도의 기준이 주어진 상태에서 자료를 분류해가며 기준을 보완하며 학습하는 것

비지도학습: 기준이 주어지지 않은 상태에서 자료들을 분류해가며 새로운 기준을 찾아내 그 기준을 바탕으로 학습하는 것

강화학습: 학습을 진행하면서 현재 할 수 있는 행동들 중 최대의 보상을 얻거나 최소의 위험을 감수하는 방향으로 학습하는 것


 여기서 중요한 것은 강화학습이 지도학습의 하위 개념이 아니라는 것이다. 두 학습 모두 기준이 존재하기에 비슷해 보이지만, 가장 중요한 것은 지도학습에는 보상(reward)이라는 개념이 존재하지 않는 반면, 강화학습에는 보상이 존재한다는 것이다. 이 보상이라는 것 때문에 지도학습과 강화학습은 서로 구분된다는 것이다.


(3) 담당교수 또는 다른 학생들이 QnA에 업로드한 10개 이상의 자신의 Comment or Answer 를 주시오.


Q : 행렬 의 수학적 관계

A : 김민수 학우가 두가지 행렬 사이의 수학적인 상관관계에 대하여 질문을 하였는데, 를 RREF를 이용하여 구한 해집합이 기존의 해집합과 동일함을 엄밀한 증명이 가능할 것 같아서 방법을 고민하였고, 결과적으로 세가지의 엄밀한 증명을 얻을 수 있었다.

느낀 점 : 직관적으로 이해하고 넘어갈 수도 있는 문제였으나, 잠시 머물러서 생각을 깊이한 결과 RREF에 대해 더욱 더 깊이 이해할 수 있는 계기가 되어 아주 흥미로웠다. 학문을 공부할 때 종종 이러한 생각에 잠기게 되어 때로는 진도를 못 맞추기도 하지만, 이런 생각이 성과를 얻을 때에 얻게 되는 성취감이 말로 표현할 수 없기 때문에 계속 이러한 습관을 갖게 되는 것 같다. 신속함과 정확함 신중함을 골고루 갖추어 더욱 더 경쟁력을 갖추어야겠다고 다짐해본다.


Q : 여러 차례의 WebEx 미팅 요약

A : 교수님께서 매주 금요일 10:30에 WebEx 미팅을 열어주시고 한 주간 학습 활동에 대한 피드백, 앞으로의 수업 운영 방향을 공유해주시는데, 그 내용에 대해서 정리하고 요약한 것을 여러 차례 진행하였다.

느낀 점 : 먼저는 내용을 요약 정리하면서 스스로 무엇을 어떻게 챙겨가야겠다는 것이 정리가 되어서 매우 좋았다. 정리가 안된 채로 있으면 쉽게 잊어버리기 마련인데, 다시 정보를 찾아가도 다 챙기지 못하고 빠뜨리기 마련이기에 이 정리작업은 스스로에게 매우 의미가 있었다. 나아가 부득이한 사정으로 WebEx 미팅에 참여하지 못한 학생들에게 수업 공지를 요약 전달할 수 있어서 보람이 있는 작업이었다.


Q : 벡터공간의 10가지 성질에 대하여

A : 벡터공간을 충족하기 위해서 10가지 성질을 만족하여야 하며, 벡터공간의 부분집합이 벡터공간이 되어 부분공간이 되려면 10가지 성질 모두를 보이지 않고 두가지만 보이면 된다는 것을 알게 되었다.

느낀 점 : 수학교육과를 전공하신 어머니에게 들은 바가 있었는데, 벡터가 엄밀히 말하면 방향과 크기를 가진 물리량이라고만 할 수는 없다는 것이다. 벡터공간을 충족하는 복잡한 성질이 있다고 하였는데 처음에는 잘 와닿지 않았으나 의외로 어렵지 않은 성질들 10가지라는 것을 깨달았다. 우리가 수학에서 다루는 대다수의 대상이 벡터에 해당한다는 것을 깨닫고 매우 흥미로웠다.


Q : Gram-Schmidt 정규직교화 알고리즘 정리하기

A : Gram-Schmidt 정규직교화 알고리즘이란, 주어진 벡터의 기저를 정사영을 활용하여 같은 공간을 span하는 정규직교기저를 순차적으로 구해나가는 과정이다. 주어진 벡터의 기저 중 한 벡터를 골라 그 벡터가 span하는 1차원 부분공간을 생각하고, 다른 한 벡터를 그 부분공간에 정사영 내리면 두 개의 직교기저를 구할 수 있고 두 개의 직교기저가 2차원 부분공간을 span한다. 또다른 한 벡터를 이 2차원 부분공간에 정사영 내리면 세 개의 직교기저를 구할 수 있다. 이렇게 확장시켜 나가면 직교기저를 구할 수 있고, 각 기저를 norm으로 나누면 정규직교기저가 된다.

느낀 점: Gram-Schmidt 정규직교화 알고리즘이 내용이 길어서 처음에 잘 들어오지 않았다. 하지만 이것을 스스로 서술해가면서 약한 부분을 확인하며 보완하고 그 서술한 것을 확인받으면서 이 개념에 대해 확실히 이해할 수 있게 되었고 머릿속에 확실한 지식으로 자리잡게 되어 좋았다.


Q : QR분해하기

A : Gram-Schmidt 정규직교화 알고리즘을 이해하였으므로 이를 활용하여 임의의 행렬을 분해할 수 있다. 이 때, 의 열벡터는 정규직교기저가 되며 의 열벡터의 정규직교기저의 각 벡터에 대한 정사영으로 성분을 이룬다. orthogonality에 의해 은 상삼각행렬이 되며, 를 좀 더 다루기 쉬운 상삼각행렬을 이용하여 분석할 수 있다는 의미가 된다.

느낀 점 : Gram-Schmidt 정규직교화 알고리즘을 깨달았을 때 바로 따라오는 개념이기에 상당히 의미가 있다고 생각한다. 일반적인 행렬은 분석하기가 쉽지 않은 경우가 많은데 상삼각행렬만 되어도 그 수고가 훨씬 덜어지기 마련이다. 데이터의 수가 아주 많을 때 분해가 떠오르는 것만으로도 큰 경쟁력이 될 것이라고 생각한다.


Q : 벡터에 대한 Notation 바로잡기

A : 벡터에 대한 Notation을 잘못 사용하고 있어 교수님에게 지적을 받았다. 과거에 라고 사용한 적이 있었는데 틀린 표현이라고 하셔서 와 같이 볼드체로 고쳐서 사용했는데 단순한 이탤릭채가 아니라 반드시 볼드체 로마자로 변환하여 로 사용해야 함을 깨달았다.

느낀 점 : 곳곳에서 가르치는 벡터에 대한 Notation이 너무 제각각이다. 고등학교 때는 또는 와 같이 사용하였는데 벡터를 처음 배운지 한참 후에야 올바른 Notation을 깨달았다는 것이, 아무도 정확하게 지적해준 사람이 없다는 것이 놀라웠다. 누군가 Notation을 잘못 사용하고 있는 경우 또한 바로잡아주는 것이 나의 도리라고 생각한다.


32. 주성분 분석

주성분 분석(Principal Component Analysis, PCA)는 가장 널리 사용되는 차원 축소기법 중 하나로, 원 데이터의 분포를 최대한 보존하면서 서로 직교하는 새 기저(축)을 찾아, 고차원 데이터들을 선형 연관성이 없는 저차원 공간으로 변환한다. 이때, 계산은 주로 행렬의 고윳값 분해 또는 특이값 분해(SVD)를 사용한다.

PCA는 기존의 변수를 일차 결합하여 서로 선형 연관성이 없는 새로운 변수, 즉 주성분(PC) 들을 만들어 낸다. 첫 번째 주성분 PC1이 원 데이터를 가장 많이 보존하고, 그 다음으로 주성분 PC2, PC3 순으로 보존한다.


33. PC Score









34. 신경망(Neural Network)


신경망은 신경계의 기본 단위인 뉴런을 모델화 한 것이다.


하나의 인공 뉴런에서는 다수의 입력 신호 x_i를 받아서 하나의 신호를 출력한다. 이는 실제 뉴런에서 전기신호를 내보내 정보를 전달하는 것과 비슷하다. 이때 뉴런의 돌기가 신호를 전달하는 역할을 인공 뉴런에서는 가중치(weight) w_i가 그 역할을 한다. 각 입력신호에는 고유한 가중치가 부여되며 가중치가 클수록 해당 신호가 중요하다고 볼 수 있다.

뉴런에서 임계값(threshold) 이상의 자극이 주어져야 감각이 반응하는 것처럼, 인공 뉴런에서도 다수의 입력신호가 주어지면, 미리 부여된 가중치와 계산을 한 후 그 총합이 정해진 임계값을 넘으면, 1을 출력하고 넘지 못하면 0 (또는 –1)을 출력한다. 이 때 출력을 결정하는 함수를 활성화 함수(activation function) 라 한다.

신경망은 제대로 예측할 때 까지 많은 데이터를 필요로 하며, 또한 입력층과 출력층 사이에 많은 은닉층을 둘 수도 있다. 이와 같이 은닉층이 여러 개 있는 인공신경망을 심층신경망(deep neural network)라 하며, 심층 신경망을 학습하기 위한 기계학습 기법을 딥러닝(deep learning)이라 부른다. 은닉층이 여러개 있는 경우에도 마찬가지로 오차 역전파법을 이용하여 그 이전 층에서 전파된 오차로부터 경사하강법을 적용하여 가중치를 갱신할 수 있다.


35. 오차 역전파(back propagation)법

입력값과 정답을 알고 있는 데이터셋이 있다고 하면, 데이터셋을 잘 판단하도록 신경망의 가중치를 조정해야한다. 이때, 초기에 임의의 가중치를 부여해 놓고, 주어진 데이터로부터 신경망을 이용하여 얻은 예측값과 미리 알고 있는 정답간의 오차를 줄이는 방향으로 가중치를 점차 갱신해 나간다. 이때 계층 간의 각각의 연결이 오차에 영향을 주는 정도에 비례해서 오차를 전달한다. 오차 역전파법은 이 방법의 대표적인 예이다.


(예) Q : [Discussion] 알고리즘과 수학은 왜 배워야 하는가?


A : 1. 알고리즘의 작동환경에 대해 많은 신경을 써야한다. 오류가 생겼을 때, 사용자가 정확히 어떤 부분에서, 어떤 오류가, 왜 발생하는지를 파악해야 그것을 고칠 수 있기 때문이다.

2. 컴퓨터에게 알맞은 알고리즘을 짜는 것도 중요하다. 사람에게 적합한 알고리즘과 컴퓨터에게 적합한 알고리즘에는 차이가 있을 수 있기 때문이다.

3. 수학적인 기초가 없더라도 이미 만들어진 tool들이 존재하는 tool box를 사용하는 것은 가능하다. 그러나 그것들을 이해하고, 새로운 tool이나 나만의 AI를 만들기 위해서는 그에 맞는 수학적 지식이 반드시 필요하다.

느낀 점 : 왜 내가 이 수업을 듣고 있는지에 대해 돌아보게 만드는 좋은 discussion이었다. 학부연구생으로서 공부하고 계시는 분의 경험담을 들으니 더 열심히 해야겠다고 생각했다. 다양한 경험을 한 분들이 의견을 공유해주시니까 큰 도움이 된다고 느꼈다.


Q : [Discussion] 베이즈 정리, 조건부 확률과 몬티 홀 문제

A : 몬티홀 문제란 세 개의 문들 중에 하나를 선택하여 문 뒤에 있는 선물을 가질 수 있는 게임쇼에 참가했다. 한 문 뒤에는 자동차가 있고, 나머지 두 문 뒤에는 염소가 있다. 이때 어떤 사람이 예를 들어 1번문을 선택했을 때, 게임쇼 진행자는 3번문을 열어 문 뒤에 염소가 있음을 보여주면서 1번 대신 2번을 선택하겠냐고 물었다. 참가자가 자동차를 가지려할 때 원래 선택했던 번호를 바꾸는 것이 유리할까? 라는 내용이다.

1. 경우의 수를 하나하나 따져보면, 처음의 선택을 바꾸는 것이 유리하다.

2. 조건부 확률이나 베이즈 정리를 적용했을 때도 선택을 바꾸는 것이 유리하다.

2. 문의 개수를 훨씬(100만개까지) 늘려보면, 직관적으로 생각했을 때도 처음의 선택을 바꾸는 것이 유리함을 알 수 있다.

3. ‘선택하지 않은 문들 중 염소가 있는 문 하나를 공개해주겠다. 처음 선택을 바꿀 것인가?’ 대신 ‘선택을 바꾼다면 처음에 선택하지 않은 두 문 뒤에 있는 모든 물건들을 주겠다. 처음 선택을 바꿀 것인가?’라고 생각한다면, 즉 선택지를 조금 다르게 해석하면 확률 계산도 할 필요 없이 문을 두개 고른다는 생각에 쉽게 선택을 바꿀 수 있다.

느낀 점 : 몬티 홀 문제는 정말 유명하다. 그에 대한 해설도 당연히 잘 알려져 있다. 하지만 조건부확률과 베이즈 정리에 대해 처음 수업에서 배웠을 때 나는 이 문제를 떠올리지 못했다. 질문자님의 새로 배운 내용과 알고 있는 지식을 연결하는 능력이 뛰어나다고 느꼈다.


Q : 데이터 사이언스에서 선형 회귀와 같은 모델에서 최소제곱해를 구하여 오차를 최소화 하는 방식으로 파라미터를 최적화를 하는 것으로 알고 있는데요.

보통 데이터 셋은 매트릭스 형태로 되어 있고, 이는 선형 연립 방정식으로 풀 수 있다고 생각을 합니다.

이 때, 를 최소로 하는 해를 구하는 것이 선형 연립 방정식이 해를 갖지 않을 때에 해당하는 것인가요?


기존의 이해 : 선형 방정식이 해를 갖지 않을 때만 Least Square 방법을 사용하여 최적해를 찾는 것이라고 생각


Finalized answer : 연립 1차방정식의 행렬이 정사각행렬이고 가역행렬이면, 그 경우 최소제곱해는 바로 그 유일해가 됩니다. 따라서 Least Square 해법은 모든 연립방정식에 대해 최적해 (또는 유일해가 존재 할 때는 유일해)를 구하는데 적용 가능 -> 해가 없을 때 or 유일해 존재할 때 모두 적용 가능


... 

(예) Q : [Discussion] 알고리즘과 수학은 왜 배워야 하는가?


A : 1. 알고리즘의 작동환경에 대해 많은 신경을 써야한다. 오류가 생겼을 때, 사용자가 정확히 어떤 부분에서, 어떤 오류가, 왜 발생하는지를 파악해야 그것을 고칠 수 있기 때문이다.

2. 컴퓨터에게 알맞은 알고리즘을 짜는 것도 중요하다. 사람에게 적합한 알고리즘과 컴퓨터에게 적합한 알고리즘에는 차이가 있을 수 있기 때문이다.

3. 수학적인 기초가 없더라도 이미 만들어진 tool들이 존재하는 tool box를 사용하는 것은 가능하다. 그러나 그것들을 이해하고, 새로운 tool이나 나만의 AI를 만들기 위해서는 그에 맞는 수학적 지식이 반드시 필요하다.

느낀 점 : 왜 내가 이 수업을 듣고 있는지에 대해 돌아보게 만드는 좋은 discussion이었다. 학부연구생으로서 공부하고 계시는 분의 경험담을 들으니 더 열심히 해야겠다고 생각했다. 다양한 경험을 한 분들이 의견을 공유해주시니까 큰 도움이 된다고 느꼈다.


Q : [Discussion] 베이즈 정리, 조건부 확률과 몬티 홀 문제

A : 몬티홀 문제란 세 개의 문들 중에 하나를 선택하여 문 뒤에 있는 선물을 가질 수 있는 게임쇼에 참가했다. 한 문 뒤에는 자동차가 있고, 나머지 두 문 뒤에는 염소가 있다. 이때 어떤 사람이 예를 들어 1번문을 선택했을 때, 게임쇼 진행자는 3번문을 열어 문 뒤에 염소가 있음을 보여주면서 1번 대신 2번을 선택하겠냐고 물었다. 참가자가 자동차를 가지려할 때 원래 선택했던 번호를 바꾸는 것이 유리할까? 라는 내용이다.

1. 경우의 수를 하나하나 따져보면, 처음의 선택을 바꾸는 것이 유리하다.

2. 조건부 확률이나 베이즈 정리를 적용했을 때도 선택을 바꾸는 것이 유리하다.


3. 문의 개수를 훨씬(100만개까지) 늘려보면, 직관적으로 생각했을 때도 처음의 선택을 바꾸는 것이 유리함을 알 수 있다.


4. ‘선택하지 않은 문들 중 염소가 있는 문 하나를 공개해주겠다. 처음 선택을 바꿀 것인가?’ 대신 ‘선택을 바꾼다면 처음에 선택하지 않은 두 문 뒤에 있는 모든 물건들을 주겠다. 처음 선택을 바꿀 것인가?’라고 생각한다면, 즉 선택지를 조금 다르게 해석하면 확률 계산도 할 필요 없이 문을 두개 고른다는 생각에 쉽게 선택을 바꿀 수 있다.

느낀 점 : 몬티 홀 문제는 정말 유명하다. 그에 대한 해설도 당연히 잘 알려져 있다. 하지만 조건부확률과 베이즈 정리에 대해 처음 수업에서 배웠을 때 나는 이 문제를 떠올리지 못했다. 질문자님의 새로 배운 내용과 알고 있는 지식을 연결하는 능력이 뛰어나다고 느꼈다.


Ch 3장. PBL Participation/Activity Part

 

       (3장. PBL 참여 부분 ) <  Final  OK by SGLee only >

 

           (온라인강의에서는 Final OK by TA, or Final OK by classmate 포함)


한 학기 동안 QnA 통하여 논의에 참여했던 내용에 자신도 참여했던 것 모두와 기타 자신이 제공한 유의미한 정보 또는 그것에 자신이 참여한 부분을 모두 아래에 정리하시면 됩니다. (20점)


@@ @@이라고 합니다.(자기소개)

작성자 : @@(2013****84)작성일 : 2020년 3월 11일 오후 7:09

조회수 : 40


과거 2017년에 이상구교수님의 선형대수학을 수강한 적이 있었습니다.

학습 자료를 방대하게 제공해주셔서 자칫 부담을 느낄 수도 있는 강좌였지만, 질문과 호기심을 바로바로 해소할 수 있는 시스템이 마음에 들어서 열심히 쫓아갔고 지금까지 들은 수업 중에 가장 내용이 많이 기억에 남는 수업이었습니다.

작년에 인공지능개론 수업을 뭣 모르고 신청하였었는데 다소 지루한 이론수업이었는데다 소프트웨어학과 학생들과의 경쟁 속에서 크게 흥미를 느끼지 못하고 지나간 경험도 있었습니다. 이번 수강신청 강좌에서 교수님의 인공지능을 위한 기초수학을 발견하고 참 듣고 싶었었는데 온라인 수강신청 일정을 착각하여 오늘 3월 11일에야 신청하고 부랴부랴 듣고 있네요..^^;; 교수님의 교육방법론이 이미 익숙한데 다시금 이것을 접하는 것이 너무나 반갑고 좋습니다.

제가 누구에게나 추천하고싶은 수업형태인만큼 이번 강좌에서도 열심히 배워가겠습니다. 감사합니다.


이상구(LEE SANGGU)3월 11일 오후 10:06

신@@군, 반가워요^^♡♡ 이번 학기에도 인공지능에 필요한 수학 지식에 대하여 많이 얘기하고, 좋은 성적 취득해 가세요^^Best wishes from이상구 교수***


■ 2017년 ... LA April PBL보고서를 마치고


3, 4월 : 대학에 들어와서 처음 접한 수업 방식이라 처음에 적응도 힘들고 많이 낯설었던 것이 사실입니다. 교수님께서 예습, 복습하라고 동영상 강의도 적극적으로 올려주시고 하셨지만, 충분히 활용 못한 부분도 많았습니다. 기존에 해오던 공부방식대로 책을 읽고 혼자서 이해하려고 한 습관을 떨치기가 쉽지 않았는데, 몇 번 활용해보니 단시간을 들여 빠른 이해를 가져올 수 있어서, 이 Flipped/PBL 방식의 수업이 왜 좋은지 깨달을 수 있었습니다. 그리고 기존에 수학이나 과학에 있어서 궁금한 것들을 교수님, 선생님에게 질문하고 답변 받는 활동을 좋아하는 바 있었기에 QnA를 통해 적극적으로 토론을 벌이는 이 운영방식은 굉장히 좋고 저에게 맞았습니다. 초반에는 관심있는 문제 소재가 아니라던지, 당장에 이해하기 어렵고 한 부분은 질문 답변을 조금 꺼리기도 한 것이 사실이었습니다만, 레포트를 작성하는 과정에서 조금이라도 더 관심을 갖고 답변에 참여해보자는 마음으로 미룬 답변, 관심 가질만한 답변을 찾아보며 참여를 하였습니다. 지나고 보니, 그 문제 소재에서만큼은 누구에게도 뒤지지 않을 대가가 되었던 것 같습니다.지금까지의 학습상황을 보았을 때, 중간중간에 개념적인 구멍이 눈에 조금 띄는 것도 있습니다. 남은 기간 QnA를 활용하고 적극적으로 조활동을 하고, 동영상 강의를 활용하면서 메워나가리라 생각합니다. 그리고 기말고사 범위에서는 내용이 더욱 복잡해지고 어려워질텐데, 이 수업의 장점을 더욱 더 최대한 활용하여 놓치는 개념 없이 완벽하게 잡고 가리라는 마음이 생겼습니다. 이제라도 익숙해졌으니, 기말고사까지 최선을 다해 이 수업의 장점을 활용하겠습니다. 항상 감사합니다.


5월 : 중간고사 끝나고 초반에 의욕적으로 7단원을 확실히 마스터해야겠다는 생각으로 예습, 복습, Q&A에 성실하게 참여했습니다. 후반으로 갈수록 ... 많이 남습니다. ... 이제 이 강좌도 마지막을 향해 달려가고 있는데, 강좌가 끝나더라도 이 수업에서 배웠던 학습방식을 토대로 향후 학업에도 큰 도움을 얻을 수 있을 것 같습니다.


6월 : 개인적으로 ... 힘들고 어려웠습니다. ... 그래도 선형대수학 수업방식을 통해 앞으로 대학공부를 어떻게 해 나가야겠다는 감을 잡게 되어 좋았습니다.


신@@(2013****84)3월 11일 오후 11:42

네넵 열심히 참여하겠습니다ㅎㅎ감사합니다


* RREF 계산 방법에 대한 질문  (3월 12일 1주차에 작성됨, 3월 30일 Final OK by TA)

* 고윳값에 대한 질문(수정입니다)        (3월 24일 3주차에 작성됨, 4월 3일 Final OK by TA)

* 고윳값 분해와 특이값 분해의 차이     (4월 3일 4주차에 작성됨)

* 특이값 분해 Sage코드 오류    (4월 3일 4주차에 작성됨)




이상구(LEE SANGGU)3월 12일 오후 8:32

1.  일반 행렬을 RREF로 바꾸는 계산방법은 아래를 보시면 됩니다.


2. 그 방법과 과정을 우리는 손으로 하는 대신 코드 를 이용하여 소개 한 것입니다. 자세한 과정은 내가 웹에 올려놓은 자료와 내가 쓴 무료 전자 선형대수학 교재에 있으미 그것을 참고하세요^^

[Linear Algebra. Korean]




(디지털 교과서) http://matrix.skku.ac.kr/LA-K/




PBL - Flipped Learning http://youtu.be/Mxp1e2Zzg-A


Lecture 1 Introduction http://youtu.be/w7IzR4nGa3Q


(전자 교과서) http://matrix.skku.ac.kr/2015-Album/Big-Book-LinearAlgebra-Eng-2015.pdf



행렬을 RREF로 바꾸는 계산방법은

연립방정식을 소거법 으로 푸는 법 입니다.


그 과정을 Elementary Row Operation 들 이라고 하고, 이는 세가지 종류의 Elementary Matrix 들을 곱해서 얻어집니다.


곧 추가 설명 보태줄께요^^


이상구(LEE SANGGU)3월 12일 오후 10:07

http://matrix.skku.ac.kr/2018-album/LA-Sec-3-3-lab.html 와 아래에서 중간과정과 예를 확인 하시고 ... 코드 이용하여 실습하고 .. 큰 사이즈 행렬에 실습한 것을 공유 하세요^^

1. 기본행렬과 치환행렬


In에 기본행연산(elementary row operation, ERO)을 한 번 적용해서 얻은 행렬을


기본행렬(elementary matrices)이라 한다. 그리고 치환(permutation)행렬은 In의


행들을 교환하여 얻어진 행렬이다.

# 아래는 기본행렬을 보여주는 코드입니다.

E1=elementary_matrix(4, row1=1, row2=2) # 기본행렬 r2 <--> r3

# elementary_matrix(n, row1=i, row2=j) i행과 j행을 교환

E2=elementary_matrix(4, row1=2, scale=-3) # 기본행렬 (-3)*r3

# elementary_matrix(n, row1=i, scale=m) i행에 m을 곱한다.

E3=elementary_matrix(4, row1=0, row2=3, scale=7) # 기본행렬 7*r4 + r1

# elementary_matrix(n, row1=i, row2=j, scale=m) j행에 m을 곱하여 i행에 더함

print "E1 = "

print E1

print

print "E2 = "

print E2

print

print "E3 = "

print E3



# 아래는 기본행렬을 임의의 행렬의 왼쪽에 곱하는 것은

# 기본행렬에 대응하는 기본행 연산을 주어진 행렬에

# 시행한 것과 같음을 보여주는 코드입니다.

A=matrix(3,3,[1,2,3,1,1,1,0,1,3])

E1=elementary_matrix(3, row1=1, row2=2) # 기본행렬 r2 <--> r3

E2=elementary_matrix(3, row1=1, row2=0, scale=2) # 기본행렬 2*r1 + r2

E3=elementary_matrix(3, row1=1, scale=3) # 기본행렬 3*r2

print "A = "

print A

print

print "E1*A = "

print E1*A

print

print "E2*A = "

print E2*A

print

print "E3*A = "

print E3*A

http://matrix.skku.ac.kr/sglee/linear/ocu/20104.html


에 쉬운 설명 있습니다^^


정 의 mxn 행렬 A에 관한 다음 연산을 기본행연산(elementary row operation)이라고 한다.


E1 : A의 두 행 i 행과 j 행을 서로 바꾼다.


E2 : A의 i 행에 0 이 아닌 상수 k 를 곱한다.


E3 : A의 i 행을 k 배하여 j 행에 더한다.



앞으로 기본행연산을 다음과 같이 기호로 나타내기로 한다.

( [예제 1] 참조 )


E1 : Ri <--> Rj


E2 : k Ri


E3 : k Ri + Rj


정 의 행렬 A에 기본행연산을 시행하여 얻어지는 행렬을 B라 하면 A와 B는 행동치 (row equivalent)라고 한다.


[예제4]


다음 행렬 A를 기본행연산을 시행하여 REF와 RREF로 변형시켜 보자.



단계 1.

...



단계 2.


...

황인성(2019****19)3월 12일 오후 10:40

교수님께서 알려주신 방법을 단계에 따라 차근차근 풀어보니 이해하게 되었습니다.

도움을 주셔서 감사합니다!


이상구(LEE SANGGU)3월 13일 오후 1:39

황인성군^^ Great^^ You will make a history^^


이상구(LEE SANGGU)3월 23일 오전 11:52

황 군, <--- Comment 달아 Finalize 하면 될 듯 합니다^^^


이상구(LEE SANGGU)3월 30일 오전 5:03

내가 Web 에 올려 준 샘플 final pbl 보고서 . . . 모델의 Finlized OK 된 것을 참고하여 그동안 완전히 이해한 것들 을 ... 특히 < 다른 학생들이 푼 것을 이해하면 그것들을 바로 Final 선언 하시면 됩니다. >


1. 이름 포함된 참여자 모두 만점 입니다

2. 질문 답 수정 Final comment 단 학생 및 두 ... Finalized OK by SGLee 에 이름 포함된 학생 모두 만점.


3. 제출할 PBL 보고서에 포함된 이런 문제의 양과질이 여러분의 실력 입니다.


4. 지금 얘기한 그대로 하시면 .. 그런 학생은 , 그런 팀은... 모두 만점 A 받게 될 것입니다

                                                 


      

   

 

    

    


이상구(LEE SANGGU)3월 25일 오전 00:40

황인성 군, 교재 책을 보셨으면 ... .    http://matrix.skku.ac.kr/math4ai/part1/

1. 고윳값과 고유벡터의 정의가 책에 자세히 있습니다.... ~~ 물론 모든 주요 정의가 책에 있습니다.



2. 책에서 det 를 이용하여 고윳값을 구하고, 선형연립방정식을 플어서 고유벡터를 구한 것 입니다. 라고 설명 해주었습니다.



추가로 책에 더 자세한 설명이 있는 아래 주소도 주었습니다.



'많은 응용문제에서

제기되는 중요한 질문 중의 하나는 "Ax가 x와 평행이 되게 하는 영 아닌 벡터 x가

존재하는가?" 하는 문제인데, 이와 같은 고유벡터는 선형변환과 관계되어 많은 중요한

역할을 한다. '


고유벡터와 고유값에 대하여 알아본다.

http://matrix.skku.ac.kr/knou-knowls/CLA-Week-6-Sec-4-5.html


3. 여러분이 해야 할 큰 크기의 행렬 계산 ... 이 긴 계산 과정을 돕기위해 ... 코드로 만들어 준것 입니다^^


4. 내용은 Ax = 람다 x 를 만족하는

scalar 인 람다가 행렬 A 의 하나의 고윳값이고, 영아닌 vector

벡터 x 가 그 람다에 대응하는 하나의고유벡터 입니다. ^^

(아래 절차대로 특성방정식을 구하고, 고윳값들을 구하고, 각 고윳값들에 대응하는 1차독립인 고유벡터들을 구하는 것이 ㄱ 과정입니다.)

(단, 행렬이 4타 행렬 5차 행렬만 되어도, 고윳가뵤조차 손으로 구하는 것이 거의 불가능합니다. 따라서 여러분은 Math & Coding 을 여기서 무조건 사용하여야만 합니다. <--- 본 강좌에서는 위의 과정을 여러분이 이해하고 경험하게 (QnA + PBL 보고서) 하는 것입니다.)


결론| 내가 만들어 준 최고의 책 꼭 보시고 고윳값 정의 부분 그것을 여기에 가져다놓고, 그 중 이해가 안되는 부분을 질문 하세요^^


이상구(LEE SANGGU)3월 25일 오후 12:42

% In http://sage.skku.edu/ or https://sagecell.sagemath.org/


A=matrix(2, 2, [1, -3, -3, 1]) # A 입력

print (A.charpoly()), "= 0" # A의 특성방정식


solve(x^2 - 2*x - 8==0, x)


print (A.eigenvalues() ) # A의 고유값


(-2*identity_matrix(2)-A).rref()

# 동차이므로 계수행렬만 고려해도 된다.


(4*identity_matrix(2)-A).rref()

# 동차이므로 계수행렬만 고려해도 된다.


print (A.eigenvectors_right() ) # A의 고유벡터

# 고유값, 고유벡터, 중복도



% 특성방정식 x^2 - 2*x - 8

% 고윳값 두 개 [4, -2]

% [( 고윳값 4, [ 일차독립인 고유벡터 (1, -1) ], 대수적 중복도 1 ), ( 고윳값 -2, [ 일차독립인 고유벡터 (1, 1) 의 개수가 고윳값의 기하적 중복도 ], 대수적 중복도 1)]


이상구(LEE SANGGU)3월 25일 오후 12:53

http://matrix.skku.ac.kr/2008-Lecture/LAA-sglee/text-ch06SPF/Page005.html


을 보고 < 주어진 고윳값에 대응하는 고유공간 (eigen space)의 정의> 에 대하여 ... 이해한 바를 얘기해 보세요^^


이상구(LEE SANGGU)3월 30일 오전 4:44

내가 웝에 울려 준 샘플 final pbl 보고서 . . . 모델의 Finlized OK 된 것을 참고하여 그동안 완전히 이해한 것들 을 바로 Final 선언 하세요.


그대로 하시면 만점 A입니다


                                          


이상구(LEE SANGGU)4월 3일 오전 10:23

<-- 잘했어요^^ 다른 학생들이 질문/답 등 을 읽어 보고 <-- 이해 했으면 이해했다고 Comment 달고 (질문과 답변을 정리하여) ... PBL 보고서에 포함하여 제출하세요^^


이상구(LEE SANGGU)4월 3일 오전 10:25

다른 학생이 이해했으면 , 행렬 크기가 큰 여러분 다른 책에서 본 행렬에 대하여, 실제 그 행렬에 시행한 결과도 보여 주시면 어떨까요?


                                                       



이상구(LEE SANGGU)4월 4일 오후 5:25

내가 교재에 준 코드를 자세히 보시면, ..., 고윳값이 달라,

대응하는 일차독립인 고유벡터들이 이미 직교 이므로, 정규화만 하연되었습니다.


학생이 사용한, 행렬

G 가 무엇인지 ... 설명 해보세요^^

질문 에 사용한

1. 4차 정사각 행렬 A 의 경우,

2. A A ^T 와 A^T A 의 고윳값과 고유벡터를 구하여 ...


구한 일차독립인 4개의 고유벡터 들을 각각 정규화 하여 U

와 V 를 구하는 것인데 ...



우선 황군이 입력한 행렬 G 는


왜 거기에 있는지 이유를 설명해 보세요^^


이상구(LEE SANGGU)4월 4일 오후 6:22

황 군이 준 행렬의 경우에는 중근인 고유값이 있어서 고유벡터로 G를 구성한 후 gram schmidt 과정을 한 번 더 거쳤어야 하는 것 아닐까요?


이상구(LEE SANGGU)4월 4일 오후 6:23

[G1, mu] = G.gram_schmidt()

Vh = matrix([1/G1.row(j).norm()*G1.row(j) for j in range(0, 4)]) # V의 전치행렬


황인성(2019****19)4월 5일 오전 00:03

확인해본 결과 B의 고윳값 중 4가 중근이었긴 때문에 오류가 났던 것으로 확인되었습니다.

이러면 그 고유값을 가진 고유벡터가 실제로 직교하는지 아닌지를 알 수 없게 되는 것 때문에 문제였던 것 같습니다.


기초적인 걸 놓쳤었네요... 감사합니다 교수님!


이상구(LEE SANGGU)4월 5일 오후 1:23

Good^^^ 황인성 군,

http://matrix.skku.ac.kr/2018-album/SVD.html 에서 보여준

이런 식으로 확인해 보면 .... 둘이 같다는 것을 ... 확인할 수 있답니다.


이상구(LEE SANGGU)4월 5일 오후 1:42

아래를 참고하여 다른 문제도 풀어 보세요^^

http://theronhitchman.github.io/linear-algebra/course-materials/workbook/section-svd.html

http://matrix.skku.ac.kr/2018-album/SVD.html


수학적으로 이해가 되엇으면 ... 다음은 실제 자신의 행렬에 대하여 맞는 SVD 를 구하는 것을 해 봐야 되는데 ...

손으로 구하는 것은 이미 4차 행렬만 되어도 불가능하고 ..


그래서 코드를 이용합니다.


코드 이용하여 구할 때 ... 쉽게 되는 경우와 잘 안되는 경우 ... 를 직접 경험하고 ... 그 차이가 무엇이고 ... 어떻게 고치면 해결하는지를 경험하는 것이 이 부분 (Math4AI ) 교육의 목표 랍니다^^


이상구(LEE SANGGU)4월 5일 오후 1:50

참고 : Sage and the SVD

Sage has a built in command for the singular value decomposition of a matrix. If you have a matrix A, the command is A.SVD(). But there is a little trick to using it! At present, Sage only has this function implemented for matrices defined over rings of “floating point numbers”. The best way around this is to either define your matrix with entries in the ring RDF, or use the .change_ring(RDF) method on you matrix before you use the SVD.


이상구(LEE SANGGU)4월 5일 오후 3:14

아래 도 참고가 될 것입니다 http://matrix.skku.ac.kr/sglee/SVD-B/SVD-all.htm


이상구(LEE SANGGU)4월 5일 오후 6:11

A = matrix(RDF, [[4, 2, 2, 0], [2, 4, 2, 0], [2, 2, 4, 0], [0, 0, 0, 4]])

print("A= ")

print(A)

print()





U, S, V = A.SVD() # A의 SVD. A = U*S*V'

print ("U = ")

print (U)

print

print ("S = ")

print (S)

print

print ("V = ")


print(V)

print

print (U*S*V.transpose())

print

print ( (A - U*S*V.transpose()).norm() )


이상구(LEE SANGGU)4월 5일 오후 6:17

위의 코드를 sage cell 에서 실습해보고, 본인 생각을 보태보세요^^


□ 3월 설명(소감)

 Sage 코드를 이용해 선형대수학 문제들을 풀었다는 것이 새삼 새롭게 느껴졌다.

 교재에서 몇 번이고 본 코드들이었지만, 문제를 풀기 위해 실제로 써보니 낯설었다.

 하지만 이 문제를 풀면서 차츰 익숙해졌고 이는 내가 앞으로 Sage 코드를 능숙하게 사용할 수 있는 밑거름이 되리라는 생각이 들었다.

 이렇게 Sage 코드를 연습할 기회가 주어져서 좋다고 생각한다.

                                                                              

4주차 ~7주차 동안 다음 5개의 글에 참여했습니다.

* n변수 함수 극값 판별에 대한 질문 (4월 15일 6주차)

* 함수의 그래프와 극한 by 김예훈          (4월 17일 6주차)

* Jacobian을 활용한 이중적분 문제 실습     (4월 21일 7주차)

* TakeHomeExam2 예제 11번과 12번 변형해서 풀어보았습니다  (4월 23일 7주차)

* Webex 출석 인증 겸 오늘 물어본 것들 요약 (4월 24일 7주차)



이상구(LEE SANGGU)4월 15일 ‎오후‎ ‎11‎:‎08

3주라는 짧은 시간에 미적분을 모두 리뷰하는 과정이니, 용어 익히고, 구할 줄 아는 것이 우선 필요 합니다. 접점을 스스로 모두 깨우치는 접근보다. 다변수 함수의 헤시안 행렬을 구한 후 그 행렬의 고윳값을 구하는 문제를 몇개 더 해보시는 것이 더 필요합니다. 그보다 황군은 지금쯤 다른 학생이 푼 문제에 코멘트 5~10개 정도 다시면 좋을 듯 합니다.

이상구(LEE SANGGU)4월 16일 ‎오전‎ ‎4‎:‎35

황인성 군, ... 다른 학생이 푼 조언/문제/정보에 ... 검색 ... 둘러보고 ... 자신의 코멘트를 정도 다시고, 이해되었으면, 질문과 답을 정리해 새글로 Finalize 를 하시면서 방법은 ... 1. 제목에 Final 과 정답을 얻는 과정에 기여한 모든 학생과 정리한 자신 이름 달고, 그리고 key word 달아 ... 공유하시고 2. 중간고사에 자신 이름으로 이나 Final 로 검색해서 ... 자신 이름 들어간 ... 그런것 모두 포함시켜서 제출 하시면, ... 3. It will help you a lot. 그럼 A 에 좀 더 가까워 지는 방법임을 다시 한번 알려주고 4. 아직 A를 받기위해 make up 할 시간이 일 주일 이 있다는 조언을 remind 해 줍니다. 행운을 빌어요.

이상구(LEE SANGGU)4월 16일 ‎오후‎ ‎6‎:‎38

고유값과 헤시안 행렬에 대한 접점은 part 1 마지막 절 이차형식에 있습니다^^ 여기는 수식/이미지가 입력이 안되므로 위에 추가해 줄께요^^

                                                                           

황인성(2019****19)4월 17일 ‎오전‎ ‎10‎:‎51

1번 문제는 범위에 따라 서로 다른 함수를 그릴 수 있도록 Sage 코드를 짠 것이고 2번 문제는 특정 함수를 이용해 좌극한과 우극한을 확인하는 방법, 그리고 이를 바탕으로 극한값의 유무를 구하는 코드이네요 극한과 관련된 개념을 이해하는데 충분히 도움이 되었다고 생각합니다

김예훈(2020****54)4월 17일 ‎오전‎ ‎11‎:‎42

의견 달아주셔서 감사합니다.

이상구(LEE SANGGU)4월 22일 오전 4:35

함수가 한점으로 수렴한 때 좌극한과 우극한 구하는 명령어는 다른 것입니다. 이 둘이 존재하여 같을 때 극한 리미트가 존재한다고 하는 것입니다. 위의 경우 좌 우 극한이 우연히 같은 것일 뿐입니다.

                                                                          

이상구(LEE SANGGU)4월 24일 오전 6:44

잘 했습니다

                                                                           

이상구(LEE SANGGU)4월 23일 오후 8:31

아주 잘 했습니다^^ I like it^^☆☆

                                                          


HW2 : 10차 행렬을 random하게 생성하여 가역인지 아닌지 확인한 결과

예제 3-6 첨가 행렬 의 RREF를 이용하여 행렬 의 역행렬을 구하여라.



예제 4-2 다음 동차연립방정식의 해공간(solution space) 을 구하여라.






정리) Rn, Rm이 벡터공간이고 어떤 선형변환 T에 대해서 T:Rn->Rm에 대하여 T가 단사일 필요충분조건은 ker(T)={0}이다.


단사 = 변환 T:Rn->Rm이 T(v)=T(u)일때 v=u를 만족하면 단사라고 한다.


여기서 정리 부분이 단번에 이해되지 않고 정말 그럴까란 의문이 들어서 증명을 해봤습니다.



var('x')

f1(x) = x

f2(x) = 4-x

plot(piecewise([[(0, 2), f1(x)], [(2, 4), f2]]))   # graph f1 on (0, 2), and f2 on (2, 4)


기존의 코드를 보면 f1(x), f2(x)로 두 함수를 정의해서  (0,2) 범위에 f1을, (2,4)범위에 f2를 그려내는 코드입니다.


범위의 조절과 함수의 갯수를 늘렸을때도 오류없이 실행되는지 값을 수정해서 실행해봤습니다.




위 코드에서 최댓값과 최솟값을 구하기 위해서는 코드를 한번 입력함으로써 끝난게 아니라, 먼저 f(x)의 함수를 그려 거기서 극소값과 극대값을 찾아낸다.


이후에 극소, 극대, 각 범위의 끝값을 비교해 최댓값과 최솟값을 찾아낸다.

함수 자체와 범위를 바꾼 다음 먼저 그래프를 그려 극소/극대 값을 찾았다. 이후 그 값을 함수에 집어넣은 값으로 최댓값과 최솟값을 찾아냈다.


 

    

 

   

P1은 적분으로 계산해내는 구역의 넓이를 뜻하고, P2는 적분의 대상이 되는 함수다. 둘을 시각적으로 한눈에 보여준 뒤, 실제적으로 적분해 값을 계산하고 이를 근사값으로 표현해주는게 5,6번의 코드다.


구간은 같게 설정하고, 적분의 대상이 되는 함수만 바꿔보았다.


 

 

  벡터의 수를 조금 늘려서 계산해보았습니다.


      

a=vector([2,-3]) #define vector a

b=vector([-3,-2]) #define vector b

c=vector([5,-5]) #define vector c

d=vector([-1,2]) #define vector d

e=vector([-6,-6]) #define vector e

print ( a+b+c+d+e ) # find the vector sum of a, b, c, d, e

f=a+b+c+d+e

plot(a, color='red') + plot(b, color='green') + plot(c, color='blue') + plot(d, color='purple') + plot(e, color='orange') + plot(f, color='black') #graph 6 vectors

 

 


함수 수치를 조금 바꿔 계산해보았습니다.


var('x,y')

f(x,y)=28*x*y-11*x^2*y^2

f_x = diff(f(x,y),x,1) #편도함수 fx(x,y)

f_y = diff(f(x,y),y,1) # 편도함수 fy(x,y)

print ("fx(x,y) = ",f_x)

print ("fy(x,y) = ",f_y)

함수만 바꾸어서 계산해 보았습니다.


var('x,y')

f(x,y)=-53*x^2+4*y^2-x+61*y

gradf = f.gradient() # 함수 f의 그래디언트

solve([gradf[0] == 0 ,gradf[1] == 0],x,y)



벡터의 값을 바꾸어 계산해 보았습니다.

a = vector([16, -33, 41])

b = vector([20, 0, -13])

s = b.dot_product(a)     # find the dot product of a and b

c = b.cross_product(a)   # find the cross product of a and b

theta = arccos(a.dot_product(b)/(a.norm()*b.norm()))   # find the angle between a and b

print('내적(inner product, dot product)은 ', s)

print('외적(cross product)은', c)

print('벡터 a와 b 의 사잇각(angle)은', theta)


내적(inner product, dot product)은  0

외적(cross product)은 (-9, -26, -6)

벡터 a와 b 의 사잇각(angle)은 1/2*pi


cos t 대신에 sin t 로 바꾸어 계산해 보았습니다.


var('t')

x(t) = sin(t)

y(t) = t

r(t) = (x(t), y(t))

dr(t) = (diff(x(t), t), diff(y(t), t))

print("r'(t) =", dr(t))   #

t0 = pi/4

p1 = r(t0)

p2 = dr(t0)/abs(dr(t0))+r(t0)

p = parametric_plot((x(t), y(t)), (t, 0, 2*pi))   # Sketch curve

utv = line([p1, p2], color = 'red', thickness = 2)   # Sketch tangent vector

show(p + utv)


coin = sample(c("앞","뒤"), 100, replace = TRUE)   # 100회 반복 
print(coin)
table(coin)

 [1] "뒤" "앞" "뒤" "앞" "앞" "앞" "뒤" "뒤" "앞" "앞" "앞" "앞" "앞" "앞" "뒤" [16] "앞" "앞" "앞" "뒤" "뒤" "앞" "뒤" "뒤" "뒤" "뒤" "앞" "앞" "뒤" "앞" "앞" [31] "앞" "앞" "뒤" "뒤" "뒤" "앞" "뒤" "앞" "뒤" "뒤" "뒤" "앞" "뒤" "앞" "뒤" [46]

 "뒤" "뒤" "앞" "앞" "앞" "앞" "뒤" "뒤" "뒤" "앞" "앞" "뒤" "뒤" "뒤" "뒤" [61] "앞" "앞" "앞" "앞" "앞" "앞" "뒤" "뒤" "뒤" "앞" "앞" "앞" "앞" "앞" "앞" [76] "뒤" "앞" "뒤" "뒤" "앞" "뒤" "뒤" "앞" "뒤" "앞" "앞" "뒤" "뒤" "뒤" "앞" [91] "앞" "뒤" "뒤" "앞" "앞" "뒤" "앞" "뒤" "앞" "뒤"coin뒤 앞 47 53


불량품 비율 -> 1000개중 6개, 이중 19개 구입

# 모두 불량품이 아닐 확률
print(choose(994,19)* choose(6,0)/ choose(1000,19))
# 적어도 불량품이 1개 이상 있을 확률
1 - choose(997,19)* choose(6,0)/ choose(1000,19)

[1] 0.8910199[1] 0.0559788



25명을 선택했을때, 4명 미만, 8명, 17명 이상의 시민이 만족할 확률

print(pbinom(3, size=25, prob=0.3, lower.tail=T))   # 3명 미만의 시민이 만족할 확률, T는 왼쪽
print(dbinom(8, size=20, prob=0.3))                 # 6명의 시민이 만족할 확률
pbinom(17, 25, 0.3, lower.tail=F)          # 10명 이상의 시민이 만족할 확률, F는 오른쪽



[1] 0.03324052[1] 0.1143967[1] 1.810448e-05



□ 4월 설명(소감)

 이번 미분적분학을 배우면서 사실 모르는 개념은 거의 후반부에나 있었지만, 다시 배우는 개념들도 헷갈리기는 매한가지였다.

 QnA 덕분에 애매했던 개념들은 확실하게 할 수 있었고, 몰랐던 개념들은 제대로 이해할 수 있었다.

                                                                              

8주차부터 12주차 동안 다음 15개의 글을 작성 및 참여했습니다. 날짜는 제가 작성 혹은 참여했을 때의 날짜를 기준으로 작성하였습니다.

* 10주차에서 배운 개념들로 3문제 풀이 (9주차 5월 8일)

* TakeHomeExam3 Part2 5문제 변형해서 풀어보았습니다. (11주차 5월 20일)

* 중심극한정리(Central Limit Theorem) 에 대하여 토론하세요^^  by 이상구(LEE SANGGU) (11주차 5월 22일 - 댓글참여)

* 베이즈 정리(Bayes’ theorem) 에 대해 토론 하시오.  by 이상구(LEE SANGGU) (11주차 5월 22일 - 댓글 참여)

* 대수의 법칙(Law of large number)에 대해 토론하세요.  by 이상구(LEE SANGGU) (11주차 5월 22일 - 댓글 참여)

* [매경시평]... 혁신의 역사, 누군가가 시킨 것을 단순 이행하는 업무란 ...  by 이상구(LEE SANGGU) (11주차 5월 22일 - 댓글 참여)

* Deepo 란? Deepo is a Docker image with a full reproducible deep learning research environment.  by 이상구(LEE SANGGU) (11주차 5월 22일 - 댓글 참여)

* Chapter 3. Part 2. 확률변수 문제 풀이  by 조윤근(2016****14)(12주차 5월 26일 - 댓글 참여)

* for t in range (0,2)? by 신재열(2013****84) (12주차 5월 26일 - 댓글 참여)

* TakeHomeExam3 Part6 3문제 변형해서 풀어보았습니다. (12주차 5월 28일)

* A 받으려는 학생과 F 면하려는 학생들은 이번 주 정말 열심히 Makeup 하셔야 합니다^^ 어제 STRONG KOREA 2020 동영상 (4시간) by 이상구(LEE SANGGU)  (12주차 5월 29일 - 댓글 참여)

* [New] 최소제곱문제(least squares problem) : 최소제곱해, 선형회귀, 최소제곱직선 by 이상구(LEE SANGGU)               (12주차 5월 29일 - 댓글 참여)

* [New] 경사하강법(Gradient Descent Algorithm) by 이상구(LEE SANGGU)       (12주차 5월 29일 - 댓글 참여)

* [New] 주성분 분석(Principal Component Analysis) by 이상구(LEE SANGGU)     (12주차 5월 29일 - 댓글 참여)

* [New] Math4AI 인공지능 (고등학교) 수학 - Tools by 이상구(LEE SANGGU)      (12주차 5월 29일 - 댓글 참여)


[Refinalized] [Final OK by TA] 벡터공간의 충족요건 (2개의 기본 성질과 8개의 연산 성질 ^^) by 신@@, 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 4월 24일 오후 3:32

조회수 : 2

[Final OK by TA] 벡터공간의 충족요건 (2개의 기본 성질과 8개의 연산 성질 ^^) by 신@@, 이상구 교수님

작성자 : 임동선(2017****79)작성일 : 3월 30일 오전 11:29

조회수 : 9

이렇게 설명을 해주셨습니다.

혹시 8개의 연산 성질이 무엇인지 상세하게 써주실 수 있으실지요??ㅎㅎ 

In http://matrix.skku.ac.kr/knou-knowls/

http://matrix.skku.ac.kr/knou-knowls/cla-week-14.html 

(벡터공간의 충족요건 (2개의 기본 성질과 8개의 연산 성질 ^^) <-- 이제 알았습니다. )

그리고 W가 V의 부분공간임을 보일 때, W가 V의 부분집합이라는 전제가 있다면 덧셈과 스칼라배에 대하여 닫혀있음만 보이면 되는 이유에 대해서도 궁금합니다.

새롭게 생각하는 어떤 집합에 대해서 벡터공간임을 보이고 싶다고 하면, 이 집합이 이미 벡터공간으로 알려진 다른 집합의 부분집합이고, 덧셈과 스칼라배에 대하여 닫혀있다는것만 보이면 벡터공간임이 명확히 증명된다는 것이 맞나요? 


이상구(LEE SANGGU)3월 11일 오후 9:59

신@@군 반가워요~^^먼저, W가 V의 부분공간임을 보일 때,

1. W가 V의 부분집합이라는 전제가 있다면

2. 벡터 덧셈과 스칼라배에 대하여 닫혀있음만 보이면 되는 이유는,

나머지 8가지 성질은 을 V 안의 모든 벡터들에 성립하는 성질이므로,

저절로 V 의 부분집합인 W 안의 모든 벡터들에 대해서도 나머지 8가지 성질들이 저절로 만족하기 때문입니다.

이 8가지 성질에 대해 설명을 해주면, 많은 공대생 들이 졸던데, 신군은 호기심이 있는 학생이니 아래에서 가르쳐 줄께요^^ Good^^


이상구(LEE SANGGU)3월 11일 오후 10:11

http://matrix.skku.ac.kr/knou-knowls/cla-week-14-sec-9-1.html 에 벡터공간 정의 에서 요구하는 10가지 조건 있습니다. 이미지와 파일을 답글로 업로드 안되니 ... 위에 다시 올려 줄께요^^


이상구(LEE SANGGU)3월 11일 오후 10:21

http://matrix.skku.ac.kr/sglee/linear/ocu/20501.html정 의 임의의 집합 V(≠ø)에서 두 연산, 덧셈(vector addition) '+'와 스칼라 배(scalar multiplication)'. '이 정의되어 있고, 임의의 x, y, z∈V 와 h, k∈R에 대하여 그 정의 아래에서 두개의 기본 법칙A. x, y∈V ⇒x+y∈VSM. x∈V, k∈R ⇒kx∈V와, 다음의 8개의 연산법칙이 성립할 때, 집합 V를 주어진 연산에 관한 R상의 벡터공간(vector space)이라 하고, 벡터공간 V의 원소를 벡터(vector)라 한다.


A1. x+y=y+x

A2. (x+y)+z=x+(y+z)

A3. 모든 x∈V에 대하여 다음을 만족하는 원소 0이 V에 단 하나 존재한다. x+0=0+x=x

A4. V의 각 원소 x에 대하여, 다음을 만족하는-x가 V에 유일 하게 존재한다. x+(-x)=(-x)+x=0

SM1. k(x+y)=kx+ky

SM2. (h+k)x=hx+hy

SM3. (hk)x=h(kx)=k(hx)

SM4. 1x=x


여기서, 조건 A3를 만족시키는 0을 영벡터, 조건 A4를 만족시키는 -x를 x의 음벡터라 한다.


3. 마지막 질문에 대한 답.

어떤 집합에 대해서 벡터공간임을 보이고 싶다고 하면,


1. 이 집합이 이미 벡터공간으로 알려진 다른 집합의 부분집합이고,

2. 벡터들의 덧셈과

3. 스칼라와 벡터를 곱하는 ... 스칼라배 ...에 대하여 closed . . . 닫혀있다는것 . . . 만 보이면 저절로 2+8개인 10개의 벡터공간 이 되기 위한 조건을 모두 만족하므로 W가 부분공간임이 명확히 증명되는 것입니다. 두 가지만 보이면 됩니다. 맞습니다^^


신@@(2013****84)3월 11일 오후 11:09

아하 그렇군요 감사합니다~1번에 대해서는 그러면,

W의 모든 부분집합에 대해서는 8가지 성질이 보장이 되는데, 2가지 성질에 대해서는 따져봐야 한다는 것이고,

모든 부분집합 중에 2가지 성질까지 만족하는 특별한 경우를 부분공간이라고 한다는 것이군요~ 벡터공간이라고 할 수 있는 부분집합이네요~ 선형대수학에서 일반적으로 다루는 대상들이 벡터이기 때문에 그냥 부분집합보다는 부분공간이 더욱 의미가 있는 것이겠구요ㅎㅎ


신@@(2013****84)3월 11일 오후 11:18

8개의 조건이 찾아봤는데 복잡한게 아니라 그동안 배웠던 기본적인 조건들이네요~덧셈에 대한 교환법칙, 덧셈에 대한 결합법칙, 덧셈에 대한 유일한 항등원, 덧셈의 항등원에 대한 유일한 역원, 스칼라배에 대한 두가지 분배법칙, 스칼라배에 대한 결합법칙근데 마지막에 1x=x 이건 무슨뜻이지요??벡터공간이 아닌 집합중에 스칼라 1을 곱했을 때 자기자신이 안나오는 경우가 존재한다는 뜻인가요?


이상구(LEE SANGGU)3월 12일 오전 6:46

맞습니다. 맞는 표현은... 벡터공간이 아닌 집합에서는 그안의 모든 벡터에 곱했을 때, 모두 원래 벡터자신이 되게하는 스칼라 가 존재하지 않을 수도 있다는 의미입니다.

즉, 벡터공간이 아니면 스칼라 곱셈 에 대한 identity 가 존재하지 않을 경우도 있다는 것입니다.^^


이상구(LEE SANGGU)3월 12일 오전 6:48

다른 말로 벡터공간이 되려면 ... 다른 9개 조건에 보태서 ...10. 스칼라 곱셈 에 대한 identity 가 존재 해야만 한다는 것입니다.^^



Final Comment

우리가 어릴 때부터 배워온 수학에서 다루어온 대부분의 개념들이 벡터에 속한다고 해도 과언이 아닐 정도로 벡터공간의 개념이 매우 넓음을 이해하였다. 벡터의 쉬운 정의 "방향과 크기를 가진 물리량"은 지극히 제한적인 정의라는 말을 들은 적이 있는데, 그 말이 무엇인지 이제야 깨달았다. 8개 성질은 벡터공간의 부분집합에서 항상 보존되지만 나머지 2개의 성질은 존재하는지 다시 따져보아야 부분집합이 부분공간이 된다는 것도 흥미롭다.

1번 문제를 변형해서 풀었습니다.


x^2과 1-x그래프 그리기(0과2사이)

var('x')
f1(x) = x^2
f2(x) = 1 - x
plot(piecewise([[(0, 1), f1], [(1, 2), f2]]), (x, 0, 2))




2번문제를 변형해서 풀었습니다.

극한 구하기 문제(log(x)와1/x극한구하기)

var('x')
g(x) = log(x)
print(limit(g(x), x = 0))            # x = 0일 때 극한
f(x) = 1/x
print(limit(f(x), x = 0, dir = '-'))   # x = 0일 때 좌극한
print(limit(f(x), x = 0, dir = '+')) #x=0일때 우극한

Infinity

-Infinity

+Infinity




3.계도함수 구하기 문제를 변형해서 풀었습니다.

var('x')
f(x) =cos(x)-sin(x)
def diffmore(a,b,num):
    for i in range(num):
        a=diff(a,b)
    return a
def diffmoretimes(numm):
    for i in range(numm):
        print(i+2,'계도함수',diffmore(f(x),x,i))
diffmoretimes(8)



2 계도함수 cos(x) - sin(x)

3 계도함수 -cos(x) - sin(x)

4 계도함수 -cos(x) + sin(x)

5 계도함수 cos(x) + sin(x)

6 계도함수 cos(x) - sin(x)

7 계도함수 -cos(x) - sin(x)

8 계도함수 -cos(x) + sin(x)

9 계도함수 cos(x) + sin(x)




4.점 (4,22)에서 곡선 y=x^2+x+2 에 대한 접선의 방정식을 구하는 문제를 풀었습니다.

var('x')
f(x) = x^2 +x+ 2
df(x) = diff(f(x), x) 
print(solve(diff(f(x)) == 0, x))
y(x) = df(4)*(x -4) + 22 # 기울기(df(4))를 구하여 접선의 방정식 구하기
print(y(x))
p1 = plot(f(x), x, 0, 10, linestyle = "--", color = 'blue')   # 함수 f(x) 그리기
p2 = plot(y(x), x, 0, 10, color = 'red')   # 접선 y(x) 그리기
show(p1 + p2)   # 함수 f(x)와 접선 y(x)를 동시에 보여주기



 

6. 식만 바꿔서 문제를 풀어 보았습니다

var('x')
f(x) = x^3 - 2*x +3
p1 = plot(f(x), x, -3, 3)
show(p1) 
print(solve(diff(f(x)) == 0, x))   # look for the flection points of df, -1/3*sqrt(3), 1/3*sqrt(3)
ma = max(f(-1/3*sqrt(3)*sqrt(2)), f(1/3*sqrt(3)*sqrt(2)), f(-3), f(3))   # find maximum value
mi = min(f(-1/3*sqrt(3)*sqrt(2)), f(1/3*sqrt(3)*sqrt(2)), f(-3), f(3))   # find minimum value
print('최댓값 =', ma)
print('최솟값 =', mi)




[x == -1/3*sqrt(3)*sqrt(2),x == 1/3*sqrt(3)*sqrt(2)]최댓값 = 24최솟값 = -18



7.적분하기 문제(log(x)+3에서 0.5에서 4까지 적분하기)


f(x) = log(x)+3

P1 = plot(f(x), 0.5, 4, fill = "axis")   # fill the area between f(x) and x-axis

P2 = plot(f(x), 0.3, 4 + 0.05, color = 'green')   # graph f(x)

show(P1 + P2)   # show P1 and P2

print(integral(f(x), x, 1/2, 4).simplify_full())   # integrate f(x)

print((integral(f(x), x, 1/2, 4).simplify_full()).n(digits=5))  # 근사값



17/2*log(2) + 7

12.892                 



8. 3차원상으로 스케치를 하는 문제를 풀었습니다.

var('x, y, z')
implicit_plot3d(z == x^3+y^3, (x, -5, 5), (y, -5, 5), (z, -5, 5), opacity = 0.5)






9.벡터(1,2,2)와 (2,0,2)의 내적, 외적 사잇각 구하기  


a = vector([1, 2, 2])    

b = vector([2, 0, 2])

s = b.dot_product(a)    

c = b.cross_product(a)  

theta = arccos(a.dot_product(b)/(a.norm()*b.norm()))

print('내적(inner product, dot product)은 ', s)

print('외적(cross product)은', c)

print('벡터 a와 b 의 사잇각(angle)은', theta)



내적(inner product, dot product)은  6

외적(cross product)은 (-4, -2, 4)

벡터 a와 b 의 사잇각(angle)은 arccos(1/2*sqrt(2))




10. 3log(t)+t 의 위치벡터와 접선벡터 구하기


var('t')

x(t) = 3*log(t)+t

y(t) = t

r(t) = (x(t), y(t))

dr(t) = (diff(x(t), t), diff(y(t), t))

print("r'(t) =", dr(t))   # 도함수

t0 = 3

p1 = r(t0)  

p2 = dr(t0)/abs(dr(t0)) + r(t0)  

p = parametric_plot((x(t), y(t)), (t, 0, 2*pi))  

utv = line([p1, p2], color = 'red', thickness = 2)  

show(p + utv)


r'(t) = (3/t + 1, 1)






11. 매개변수 함수  (t, cos(t), sin(t)) 에서 t 가   -1 -에서 1까지 변하는 동안 생성하는,  곡선의 길이 구하기 (Line integral)


var('t')                          

r(t) = (t, cos(t), sin(t)) 

dr = diff(r(t), t)

s(t) = dr.norm()

print(integral(s(t), t, -1, 1))   # length of the curve

parametric_plot3d(r(t), (t, -1, 1))


2*sqrt(2





12. log(x)+cos(y)-x*y^2 2계 편도함수 구하기


var('x, y')                  

f = log(x)+cos(y)-x*y^2

fxx = diff(f, x, 2)

fyy = diff(f, y, 2)

fxy = diff(f, x, y)

fyx = diff(f, y, x)

print("fxx =", fxx)

print("fyy =", fyy)

print("fxy =", fxy)

print("fyx =", fyx)


fxx = -1/x^2

fyy = -2*x - cos(y)

fxy = -2*y

fyx = -2*y       ■



13. x=cos(u)*sin(v), y=sin(u)+cos(v), z=s^2*t의 dz/du찾기


var('u, v, s, t')                     #  https://sagecell.sagemath.org/

x = cos(u)*sin(v)

y = sin(u)+cos(v)

z = s^2*t

print("dz/du =", diff(z(s = x, t = y), u).simplify_full())




dz/du = (3*cos(u)^3 - 2*cos(u)*cos(v)*sin(u) - 2*cos(u))*sin(v)^2



14. 점(1,2,2)에서 x축에서 양의방향으로 30도 회전한 단위벡터 방향으로 f(x, y,z) = x^2 - 3*x*y*z + 4*y^2+ z^2의 방향도 함수 구하기


         ,

var('x, y, z')                   

f(x, y,z) = x^2 - 3*x*y*z + 4*y^2+ z^2

u = vector([cos(pi/6), sin(pi/6),0])

gradf = f.gradient()

print("Duf(1,2) =", gradf(1, 2,2).dot_product(u))

print(gradf(1,2,2))


Duf(1,2) = -5*sqrt(3) + 5

(-10, 10, -2)


15. x*y^3+x*y-y^2의 임계점 구하기


var('x, y')

f(x, y) = x*y^3+x*y-y^2

gradf = f.gradient()

solve([gradf[0] == 0, gradf[1] == 0], x, y)


[[x == 0, y == 0], [x == -I, y == I], [x == I, y == -I]]



16.2*x*y - 3*x^2 - 6*y^2 - x - y + 5 의 극값을 구하여라




var('x, y')

f(x, y) = 2*x*y - 3*x^2 - 6*y^2 - x - y + 5

gradf = f.gradient()  # 그래디언트 계산

print(solve([gradf[0] == 0, gradf[1] == 0], x, y))  # 임계점 계산

hessf = f.hessian()  # 헤시안 계산

H = hessf(-7/34, -2/17)

print("The eigenvalues of H are ", H.eigenvalues())


m, n = H.nrows(), H.ncols()  # 행렬의 크기

if m != n:

    raise ValueError("The matrix must be square.")  # 정사각행렬이 아니면 에러

   

for i in range(1, n + 1):

    H_principal_minor = H.submatrix(0, 0, i, i).det()  # 선행 주 소행렬식

    print("The ", i, "번째 principal minor 는 ", H_principal_minor)

   


def f(x,y):

    z= 2*x*y - 3*x^2 - 6*y^2 - x - y + 5

    return z

print('극값:',f(-7/34,-2/17))




[

[x == (-7/34), y == (-2/17)]

]

The eigenvalues of H are  [-sqrt(13) - 9, sqrt(13) - 9]

The  1 번째 principal minor 는  -6

The  2 번째 principal minor 는  68

극값: 351/68




17.경사하강법 문제(행렬을 바꿔서 시도해보기)


A = diagonal_matrix(RR, [30,20,15,20,25])

b = vector(RR, [1, 1, 1, 1, 1])   # objective function

x0 = vector(RR, [0, 0, 0, 0, 0])   # initial guess

g0 = -b                     # initial gradient

r = []  # 그래프를 그리기 위한 용도


# main iteration

for i in range(0, 200):

    gn = g0.norm()

    r.append((i, gn))

    if gn < 10^(-8):

        print("Stationary point! Algorithm terminated!")

        break


    w = A*g0

    a = g0.inner_product(g0)/(g0.inner_product(w))  # step-size

    x1 = x0-a*g0

    g1 = A*x1-b

    x0 = x1;g0 = g1


show(line2d(r) + point(r, color = 'red'))



18.F(x, y, z) = sin(x)+sin(y)-z 의 xy평면위로의 적분값 구하기(부피)


var('x, y, z')

F(x, y, z) = sin(x)+sin(y)-z

implicit_plot3d(F(x, y, z) == 0, (x, 0, 1), (y, 0, 1), (z, 0, 1), opacity = 0.4)


solve(F(x, y, z) == 0, z)


integral(integral( sin(x) + sin(y), x, 0, 1), y, 0, 1)



[z == sin(x) + sin(y)]


부피 :-2*cos(1) + 2



19. 1/sqrt(2*pi)*exp(-x^2/2) 적분값 확인하기(통계학에서 필요한 적분값)


var('x')     

f=1/sqrt(2*pi)*exp(-x^2/2)

integral(f, x, -infinity, infinity)





답 : 1


20.결합밀도함수 exp(-(x + y))가 P(x+y<=1/3) 일 확률을 구하여라.


결합밀도함수는


모든 (x,y)에대하여 f(x,y)>=0


f(x,y)를 이중적분한 값이 1 그리고 아래의 식을 만족해야된다.


var('x, y') 


f(x, y) = exp(-(x + y))

print(integral(integral(f(x, y), y, 0,1/3-x), x,  0,1/3))

print((integral(integral(f(x, y), y, 0, 1/3 - x), x, 0, 1/3)).n(digits=5))


-4/3*e^(-1/3) + 10.044625





21. Use a computer to graph the function, and plot some contour lines of the same function. 

var('x, y')
f(x, y) = (x^2+y^2-1)-x^2*y^3
plot3d(f(x, y), (x, -2, 2), (y, -2, 2), opacity = 0.4)

contour_plot(f(x, y), (x, -2, 2), (y, -2, 2), fill = False, cmap = 'hsv', labels = True)





[Final] 거듭제곱법에 대한 생각 by 신@@, 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 4월 24일 오후 1:45

조회수 : 3


거듭제곱법에 관한 생각

작성자 : 신@@(2013****84)작성일 : 3월 13일 오후 3:07

조회수 : 27

Eigenvector에 대해서는 이와 같이 자명합니다.

그런데 예제에서 교수님께서 제시하신  (1,1,1)벡터는 A의 eigenvector가 아니잖아요~

예제의 풀이의 결과를 보면 

A를 거듭제곱하고 (1,1,1)에 곱한 결과로서 eigenvector가 찾아진다는 이야기같은데 어떻게 가능한지 궁금합니다.

이 명제가 참이라는 얘기같은데 맞나요?? 증명이 어떻게 될지요??

eigenvector가 하나가 아닌데 어떤 eigenvector로 찾아지는지도 서술이 필요할 것 같습니다. 



그리고 m차 정사각행렬에는 m개의 eigenvalue가 있는데 거듭제곱하고 나눔으로써 자연스레 가장 큰 eigenvalue가 선택이 된다고 하신 것 같은데, 다른 eigenvalue가 배제되는 이유에 대해서도 궁금합니다.



아직까지 거듭제곱법이 어떤 점에서 이점을 가져다주는지도 사실 감이 아직 잘 안옵니다...ㅎㅎ이러한 측면에서도 설명해주시면 좋을 것 같습니다. 감사합니다!



이상구(LEE SANGGU)3월 13일 오후 3:22

신 군은 너무 진지해요^^ 수학자가 되어도 되겠어요^^

1. 이것은 큰 크기의 음아닌 행렬에 대한 <가장 큰 고유벡터와 그에 대응하는 고유벡터를 쉽게 찾는 Power Method> 에 대한 설명으로 ... 전체 설명은 본 강좌의 범위가 아니므로 ... 이해 할 자료만 주고 . (강좌의 수준을 벗어나는 사족의 질문이 처음 부터 너무 많으면 다른 학생들이 당황하니까 ) 나중에 내 연구실 32304에 오시면 설명해 줄께요) 

지금은 물어본 내용들에 대해 간단하게 답만 드립니다^^

http://matrix.skku.ac.kr/sglee/project/Project10/project10.htm

https://nosyu.pe.kr/1866이상구, <현대 선형대수학>, 경문사, 2005, pp. 206~208

http://sage.math.washington.edu/home/tkosan/newbies_book/

http://matrix.skku.ac.kr/sglee/project/Project10/project10.htm

http://matrix.skku.ac.kr/LA-Lab/5-1/5-1.htm

http://matrix.skku.ac.kr/cal-lab/Power-Method-Algorithm.htm

https://sens.tistory.com/265

http://seaver-faculty.pepperdine.edu/dstrong/LinearAlgebra/2013/2013SangGuLee.pdf


1. Eigenvector에 대해서 ... 예제에서 제시한 음아닌 벡터 (1,1,1) 는 이 알고리즘을 돌리기 위하여 이므로 시작하는 그냥 하나의 벡터입니다. 물론 아직은 eigenvector 를 전혀 모르는 상태입니다. ... 이렇게 대충 시작해도 ... 우리가 개발한 알고리즘은 ... 보통 짧은 시간에 ... 가장큰 고유벡터를 우리에게 찾아준다는 것이 유명한 Power Method 입니다. 여기서 소개한 이유는 앞으로 ... 우리 강좌에서는 ... 손으로 만 하던 수학을 벗어나서 ... 코딩을 이용하는 느낌을 가지라는 의미입니다.

2. 예제의 풀이의 결과를 보면 A를 거듭제곱하고 (1,1,1)에 곱하면서 ... 제시한 Power Method 를 돌리면 eigenvector가 찾아진다는 이야기는 물론 이미 증명이 완전하게 되어 있어서 ... 세상의 아는 사람은 모두 알고 수십년을 사용해 오는 방법 중 하나입니다. 어떻게 가능한지는 Power Method 를

https://en.wikipedia.org/wiki/Power_iteration 찾아보시면 모든 책에 증명이 나와 있습니다.

3. Power Method 는 참임이 이미 증명되었으니 ... 9분 짜리 아래 동영상 설명을 듣고 https://www.youtube.com/watch?v=yBiQh1vsCLU 이해 안되는 부분 여기서 어떤 학생들이 어렵다고 부담 느낄 듯하니까 ... 여기서 보다는 ... 내게 와서 모르는 부분 만 다시 물어보세요^^ 다른 학생들은 <가장 큰 고유벡터를 구하는 이런 쉬운 방법> 도 있다는 것을 ... 그리고 구글 검색엔진이 이 방법을 쓴다는 것 ... 정도만 ... 알고 가도 충분합니다.

4. eigenvector가 하나가 아닌데 ... 이 방법은 크기가 가장 큰 음아닌 eigenvector 하나을 찾는 알고리즘이랍니다.

신군, Hope this helps you^^

5. m차 정사각행렬에는 (대수적 중복도 포함) m개의 eigenvalue가 있는데 Power_iteration 을 통하여 자연스레 가장 큰 eigenvalue가 구해집니다. 이미 증명되어 있습니다.

6. 거듭제곱법이 어떤 이점이 있는지는 ... (방정식을 풀어서 고유값과 고유벡터 구하는 것보다 시간과 비용이 천배 ... 만배는 더 절약됩니다.) ... 더 궁금한 것은 .. 내게 오시면 자세히 한번 더 알려줄께요^^


신@@군, Power Method 설명입니다^^

작성자 : 이상구(LEE SANGGU)작성일 : 3월 18일 오전 11:48

조회수 : 15



신@@군,  궁금해 한 Powe Method 설명 과 증명입니다^^ 



Power Method :  https://youtu.be/n4KD4aq_jxw



(Linear Algebra) 사이버 실습실

                 http://matrix.skku.ac.kr/K-MOOC-LA/ 

2018년 9월 18일 오전 9시 개강하는 "선형대수학" 수강신청하세요~ 수강신청 바로가기 http://www.kmooc.kr/courses/course-v1:SKKUk+SKKU_2017_01+2017_SKKU01/about



Hope it helps^^



Final Comment





[Finalized by 신@@] Final OK by SGLee, 모든 (실수) 행렬은 symmetric matrix와 skew-symmetric matrix의 합으로 나타낼 수 있다. by 신@@, 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 4월 24일 오후 1:50

조회수 : 7



Q. 모든  (실수)  행렬은 symmetric matrix와 skew-symmetric matrix의 합으로 나타낼 수 있다.

작성자 : 신@@(2013****84)작성일 : 3월 20일 오후 2:46

조회수 : 22

 

                           (출처 : 자체 제작 수식편집기)


1.  강의 중간에 하신 말씀이 이 내용인데, 제 증명은 맞나요?



Answer  by SGLee  ;   Yes!!!

 맞습니다^^ 위와 같은 방법으로 모든  (실수)  행렬은 symmetric matrix와 skew-symmetric matrix의 합으로 나타낼 수 있다.





2. 형태적 유사성을 보니 궁금해지는 부분인데,  혹시 쌍곡선함수와도 관련성이 있나요? 

Answer  by SGLee  ;   Yes!!!

 이차형식의 하나인 쌍곡선함수 와 물론 관련 있습니다. 이 내용은 행렬의 대각화 및 '이차 형식'에서 사용됩니다^^

http://matrix.skku.ac.kr/knou-knowls/CLA-Week-12.html



Final Comment

모든  (실수)  행렬은 symmetric matrix와 skew-symmetric matrix의 합으로 나타낼 수 있다. 는 사실은 앞으로 이차형식 등을 배울때 를 포함하여 행렬을 분석할 때 아주 중요하게 사용되는 사실이라는 것을 깨우쳤다.

 그리고 모든 (복소수 성분의) 행렬은 Hermitian matrix와 skew-Hermitian matrix 의 합으로 나타낼 수 있다.



[Final] A의 역행렬 (증명) Finalized by 신@@

작성자 : 신@@(2013****84)작성일 : 4월 24일 오후 1:58

조회수 : 3

A의 역행렬 (증명)

작성자 : 신@@(2013****84)작성일 : 3월 20일 오후 3:17

조회수 : 45

 

http://matrix.skku.ac.kr/sglee/2000ocu/ocu20302/ocu20302.html 

Laplace 여인자 전개

  일반적으로 차의 정사각행렬 에 대하여도 다음이 성립한다.

 

따라서 차의 정사각행렬 의 행렬식은 여인자 전개를 이용하는 (Laplace 여인자 전개라고 불리우는) 다음 정리를 이용하여 구할 수 있다.



정리 2.11 가 차의 정사각행렬일 때 에 대하여 다음이 성립한다.

  (i열에 관한 여인자전개)

 ,  (j열에 관한 여인자전개)



http://matrix.skku.ac.kr/2008-Lecture/LAA-sglee/text-ch02SPF/Page016.html





정리 2.12  차의 정사각행렬 가 가역일 때, 의 역행렬은 다음과 같다.

 


https://math.stackexchange.com/questions/345517/why-is-it-true-that-mathrmadjaa-deta-cdot-i




이 명제의 증명이 궁금합니다.. 



교수님 답:

https://mathinstructor.net/2012/04/how-to-prove-that-a-adja-adja-adeta-i/


1.

 prove that

A.adj(A)= adj(A).A=det(A).I



2.  

If, we are given matrix A then



How to prove that A.adj(A)=adj(A).A=det(A)I?

where adj(A) is adjoint of A and det(A) is determinant of A.



=

Inverse-A.png



 http://matrix.skku.ac.kr/sglee/2000ocu/img/pf2-2-12.gif

 행렬식의+응용(A-1)+_A_+=+ai1Ci1+++ai2Ci2+++…+ainCin+a11+a12+…+a1n.jpg


이상구(LEE SANGGU)3월 20일 오후 3:47

위에 드린 답에서 보듯이^^ A.adj(A)= adj(A).A=det(A).I 을 보이면 답은 따라 나옵니다

https://medium.com/@polluxrey/inverse-of-a-matrix-using-gauss-jordan-elimination-and-adjoint-matrix-method-7af77a618860에 증명이 있습니다.


임동선(2017****79)3월 20일 오후 3:47

adjugate matrix 의 정의는 cofactor matrix의 transpose 인데, determinant는 고정된 row or column의 cofactor 의 합으로 표현됨을 이용하면 얻어질 것 같아요.

이상구(LEE SANGGU)3월 20일 오후 4:13


신 군,

http://matrix.skku.ac.kr/sglee/2000ocu/img/pf2-2-12.gif

http://matrix.skku.ac.kr/2018-album/LA-Sec-4-2-lab.html 을 한번 보세요^^

A.adj(A)= adj(A).A=det(A).I은 Laplace cofactor expansion 이 준답니다.

I assume that A is a square matrix, then we know

The inverse of A = adj(A) / det(A) where det is the determinant

multiply both sides of the = by A and we get

A*inverse of A = (A*adj(A)) / det(A) and A*inverse of A = (adj(A)*A) / det(A)

note that * means multiply

the above implies that

I = (A*adj(A)) / det(A) and I = (adj(A)*A) / det(A)

From above, we can say that det(A)I = A*adj(A) and det(A)I = adj(A)*A, then

A*adj(A) = adj(A)*A= det(A)*I


이상구(LEE SANGGU)3월 20일 오후 6:35

신@@ 군이나 이호준 군이, (이해되었으면 ... ) 위의 논의를 질문과 답변으로 정리 Finalize 하여 new QnA 에 새로 다시 공유해 보세요^^ (HWP 파일도 좋습니다) http://matrix.skku.ac.kr/sglee/2000ocu/img/pf2-2-12.gif


Final Comment

정사각행렬의 행렬식은 cofactor expansion으로 표기될 수 있으며 cofactor matrix의 transpose인 adjugate matrix를 주어진 행렬에 곱하면 단위행렬의 행렬식배가 됨을 알았다. 이것은 adjugate matrix가 역행렬의 행렬식배가 된다는 것을 뜻하며, 이로써 역행렬은 adjugate matrix를 행렬식 값으로 나눈 것을 의미한다는 것을 깨달았다. 행렬식이 0이면 분모가 0이기 때문에 역행렬 또한 존재하지 않음을 알 수 있으므로, 역행렬의 존재여부를 판별하는 방법 중에 하나가 행렬식이 0인지를 조사하는 것이다.



[Final] projection에 관한 질문 <-- Will be Finalized^^ by 신@@, 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 3월 22일 오후 7:29

조회수 : 22


(1)과 (2)가 참인 명제일 것 같은데 명확하게 증명하기는 쉽지 않네요..


정의.

 위로의 의 정사영 (projection of   onto )





벡터 와 가 에 있고, 라 하자. 그러면 점 에서 에 내린 수선의 발을 라 할 때, 벡터 를  위로의 의 정사영(projection of   onto )이라 하고 = 로 나타낸다. 이때 벡터  를 에 직교인 의 벡터성분(vector component)이라 한다. 따라서 는 두 벡터의 합   로 나타내진다.

                        

▪  가 에 평행이므로,  이다. 그리고  는 에 직교(orthogonal)이므로,

                   .

   따라서    이고

                      .               ■



정리.

 정사영





의 벡터 에 대하여 다음이 성립한다.

                   여기서  .         ■

  에 대하여  위로의 의 정사영 와 에 직교인 의 벡터성분 를 구하여라.

                 (,  )

풀이  이므로

     = (15/7, -15/14, 45/14),

 =(13/7, 1/14, -17/14) ■

[ 실습 : http://sage.skku.edu/  ]

x = vector([2, -1, 3])            
y = vector([4, -1, 2])
yx = y.inner_product(x)   # 벡터 x와 y의 내적 구하기
xx = x.inner_product(x)   # 벡터 x와 x의 내적 구하기
p = yx/xx*x   # 벡터의 정사영 구하기
w = y - p   # 벡터 x에 직교인 y의 벡터 성분 w 구하기
print("x =", x)
print("y =", y)
print()
print("p =", p)
print("w =", w)



in  http://matrix.skku.ac.kr/math4ai/part1/



이상구(LEE SANGGU)3월 22일 오후 7:46

V 안의 하나의 벡터에 대한 W 위로의 정사영 p가 하나 존재하는 것입니다^^ 그 벡터 하나는 부분공간 W 가 되지 않지만 ... 그 벡터의 Span 인 span(p) 가 하나의 부분공간을 이루게 됩니다^^

1. 마찬가지로 V 안의 벡터들의 정사영들의 집합 S 의 span 인 span(S) 는 W 의 부분공간이 됩니다.

2. 그리고 정사영들의 집합이 일차독립이 아닐 수 있으므로, 기저가 되지 않습니다.(위의 경우는 [질문이 부정확하고 또 맞지도 않는 가설이라서 증명이 안되는 것입니다. 어려운 것이 아니라 증명이 안되는 것이라 안된 것이랍니다.] 질문을 좀 더 다듬으면 더 좋은 질문이 될 수도 있습니다. ).

<--- 한번 들르세요^^ 추가 조언 해 줄께요^^


신@@(2013****84)3월 22일 오후 7:51

아 그렇군요...언제쯤 들르면 될지요??


신@@(2013****84)3월 22일 오후 8:13

교수님 그러면 혹시, 벡터 x의 W에 대한 정사영은, W의 기저 각각에 대한 정사영의 합이라고 할 수 있나요??좌표공간에서 방향코사인 생각하던 것에 착안하면 충분히 가능할 것 같습니다.


신@@(2013****84)3월 22일 오후 9:28

Gram-Schmidt 직교화에서도 그걸 활용하고 있는데, 앞에서 얘기한 바 있는데 제가 기억을 못하는건가 싶기도 하네요...


이상구(LEE SANGGU)3월 22일 오후 9:28

8 차원 벡터공간 안의 벡터 y 의 7차원 부분공간 W 위 로의 정사영은 하나의 벡터 p 일 뿐입니다.

즉, W 안에 있는 단 하나의 벡터 일 뿐 입니다. ^^그런데 7차원 부분공간 W 안에 영 아닌 그런 p 벡터들이 여러 개 즉 수백 개가 있으면... 당연히 그 중에 7개의 일차 독립인 벡터들이 있을 수 있게 되고, 그럼 그 7개의 벡터들의 집합은 a basis for W 가 됩니다^^



Final Comment



[Final] A^T A의 가역여부 증명 by 신@@, 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 3월 22일 오후 8:06

조회수 : 21

이후 어떻게 풀어가야할 지 모르겠습니다..

A의 전치행렬과 A를 곱한 nxn 행렬의 rank가 n이라는 것을 보여주는 것이 핵심인 것 같은데, 어떻게 하면 증명이 되려나요..?



신@@(2013****84)3월 22일 오후 8:09

최소제곱해 문제에서 A가 full column rank인건 대상이 되는 x값을 다르게 설정하기 때문에 당연히 full column rank 상황이 되겠지요..?!


이상구(LEE SANGGU)3월 22일 오후 9:33

A가 full column rank 가지면 A^T A 가 full column rank 갖는 정사각행렬이고 그럼, 가역행렬 정리에 의하여, Det (A^T A) 가 영이 아니므로, 쉽게 A^T A가 가역행렬이 되는 것입니다.


신@@(2013****84)3월 22일 오후 9:35

아하 행렬식의 성질로 간단히 증명이 되는군요!


이상구(LEE SANGGU)3월 23일 오전 10:59

내가 답글로 위의 질문과 답변을 Finalize 해주려고 해도 ... 수식이나 수식 이미지 가 답글에서는 안 써지므로 ... 신 군이 시범적으로 ,... 원래 글에 Finalized by 신@@Q.A. ...로 Final Answer 모델을 보여주면 합니다^^(이것이 여러분의 4주차 마치고 다음 다음 주에 제출할 3월 PBL 보고서 겸 HW이기도 하니까 ... 미리 하는 셈 치고 ... 해 보세요^^)


신@@(2013****84)3월 23일 오후 12:16

A가 full column rank이지만, 정사각행렬이 아니어도 되기 때문에 determinant를 정의할 수가 없네요. 처음에 받아들이기로는, A와 A^T의 행렬식이 같고 0이 아니기 때문에 A^T A도 행렬식이 0이 아니라고 받아들였는데, A가 정사각행렬이 아닌 경우에는 이 증명이 성립하지 않는다는 것을 간과했습니다.

그리고 다시 궁금한 게 있는데,

A가 full column rank이면 A^T A가 왜 full column rank를 갖는 정사각행렬인지 잘 모르겠습니다..


이상구(LEE SANGGU)3월 24일 오후 2:11

m by n 행렬 A가 full column rank이면 rank A = n 이고,n by n 행렬 A^T A은 rank 가 n 인 정사각행렬 이므로 가역행렬 정리에 따라, 가역행렬 입니다.


Final Comment

직교대각화, 특이값 분해에 대한 내용을 좀 더 공부하고 다시 살펴보니 더욱 이해가 명확해진 것 같다. A^T A는 대칭행렬이므로 직교대각화가 가능하며, 일차독립인 eigenvector를 가지기 때문에 역행렬이 존재한다는 것도 확인할 수가 있다.



[Refinalized][Final OK by TA] Gram-Schmidt 직교화 (질문과 답^^) by 신@@ , 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 4월 25일 오전 00:40


[Final OK by TA] Gram-Schmidt 직교화 (질문과 답^^) by 신@@ , 이상구 교수님

작성자 : 임동선(2017****79)작성일 : 3월 30일 오전 11:36

조회수 : 20

Gram-Schmidt 직교화 알고리즘이 한번에 정리가 안돼서 차근차근 나름대로 정리해봤습니다. 검토해주시면 감사하겠습니다. 정규직교기저를 찾기 전에 직교기저를 찾는 알고리즘만 기술했습니다.

http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-10.html

  일 때, Gram-Schmidt 정규직교화 과정을 이용하여 의 기저 로부터 의 정규직교기저 를 구하여라.

풀이   먼저 직교화 과정을 이용하여 를 계산하면 (직교기저를 얻는다).

단계 1 : 

단계 2 : 

          

단계 3 : 

          

          

그러므로 를 각각 정규화하여, 의 정규직교기저 를 얻는다.

       

집합 는 의 정규직교기저이다.     

즉, { (1/2*sqrt(2), 1/2*sqrt(2), 0), (-1/3*sqrt(1/2), 1/3*sqrt(1/2), 4/3*sqrt(1/2) ), (-2/3, 2/3, -1/3)}                                    ■

 [ 실습 : http://sage.skku.edu/  ]


http://matrix.skku.ac.kr/math4ai/part1/

x1 = vector([1, 1, 0])
x2 = vector([0, 1, 2])
x3 = vector([1, 2, 1])
A = matrix([x1, x2, x3])   # x1, x2, x3를 행벡터로 하는 행렬 생성


print("A =")
print(A)
print()
[G, mu] = A.gram_schmidt()  # 직교화 과정: 행에 대하여 직교기저를 찾는다. A==mu*G
print("G =")
print(G)
print()
N = matrix([G.row(i) / G.row(i).norm() for i in range(0, 3)])   
# 정규화과정: 정규화한 직교기저를 행으로 하는 행렬
print("N =")
print(N)


 10-thm-gram-schmidt-orthn-process-pf.png


이상구(LEE SANGGU)3월 23일 오전 7:19

여기를 읽어 보고 다시 한번 질문해 보세요.

http://matrix.skku.ac.kr/K-MOOC-LA/cla-week-10.html


신@@(2013****84)3월 23일 오전 11:53

아하 다시봤더니 제가 정사영 내리는 과정에서 식을 잘못 쓴 부분이 있었습니다.

W_n-1에 첨가하여 W_n을 생성하는 직교기저 y_n을 생각할 때, x_n을 W_n-1에 정사영 내리고 x_n에서 정사영을 빼서 y_n을 구해야 하기 때문에, 제가 시그마를 활용하여 y_k를 정의한 식에서 봤을 때, 시그마에서 x_i+1이 아니라 x_k로 쓰면 맞겠네요. 그 위에 y_2, y_3를 구할 때도 당연히 x_2, x_3을 한 차원 낮은 이전의 부분공간에 정사영 시키기 때문에 x_2, x_3로 고정되어야 하지, x의 첨자가 변할 이유가 없습니다.


신@@(2013****84)3월 23일 오전 11:54

교수님, x_1부터 x_n까지의 기저가 생성하는 부분공간이 y_1부터 y_n까지의 기저가 생성하는 부분공간과 일치하는것이죠 그러면?


이상구(LEE SANGGU)3월 23일 오후 10:07

맞습니다. 그 둘은 같은 부분공긴입니다


신@@(2013****84)3월 24일 오후 3:25

Finalize는 그냥 'Finalize 하겠습니다.' 하면 되는건가요??


이상구(LEE SANGGU)3월 30일 오전 4:38

맞습니다. 학생별로 이해된 문제들 최소 매주 1개 이상에, 그러니까 첫 4주는 각각 4개 문제 이상1.문제와 얻은 정답만 정리하고2. 참여한 사람 이름 적고3. Comment 적으면 됩니다.샘플 준것 보세요.그리고 sample 에서 질문과 답변을 복사해와서 개선해도 됩니다.


2개의 댓글

이상구(LEE SANGGU)3월 30일 오후 1:59

신@@군, 이것을 더 깔끔하게 질문과 답변 만 간결 명료하게 정리하여 (복사해서 재 구성 하면서) Re-Finalize 해 보세요^^ 그래서 그것을 march PBL 에 포함시켜서 제출하세요^^

모델: http://matrix.skku.ac.kr/2019-Album/DM-PBL/index.htm

(학생들의 질문/답변/활동 기록: http://matrix.skku.ac.kr/math4ai/PBL-Record/ )

http://matrix.skku.ac.kr/2018-album/LA-PBL.htm


Finalize) Preview 6.1, 6.2


Preview by 김찬호 19.04.29

Revise by 박재형,최세현, 김은민, 담딘바자르 19.04.29

Finalized by 김두원 19.04.29

Final OK by professor 19.04.29


(quoted from : http://matrix.skku.ac.kr/2018-DM/DM-Ch-6-Lab.html)


6 Counting Methods and the Pigeonhole Principle

Page 384.

Problem : Calculate gcd(2 * 5​2 ​* 7​2 ​* 13​4 , 7​4 * 13​2 * 17).


Sol :As the property of gcd function : gcd(ka,kb)=k*gcd(a,b),

gcd(2 * 5​2 ​* 7​2 ​* 13​4 , 7​4* 13​2* 17​)= 7​2*13​2 * gcd(2 * 5​2​ * 13​2​ = 8450, 7​2​ * 17 = 833).gcd(8450,833) = gcd(833,120) = gcd(120,113) = gdc(113,7) = gcd(7,1) = 1.


so, gcd(2 * 5​2 ​* 7​2 ​* 13​4 , 7​4* 13​2* 17​​).= 7​2*13​2 * 1 =8281


comment : I revise it easy to see. This exercise requires gcd's concept. gcd is greatest common divisor. So gcd (ka,kb) is equal to gcd(a,b).. Chapter 7

Problem 1.(new)

Use determinant to check whether the following vectors are linearly independent or not:, , , ,


Solution.

By Theorem 7.1.1. the following five vectors in, , , ,are linearly dependent because .

■Sage http://math3.skku.ac.kr/home/pub/476 by 황훌

x1=vector([1,1,-3,2,0])

x2=vector([0,2,1,3,0])

x3=vector([0,-1,0,-4,1])

x4=vector([0,-1,0,5,2])

x5=vector([2,2,-6,4,0])

A=column_matrix([x1,x2,x3,x4,x5])

print A.det()


Comment: 에서 위의 5개의 벡터가 기저(일차독립)일 필요충분조건은 ≠0이다.그러나 이 문제에서는 =0이므로 5개의 벡터가 일차독립이 아니다.



(틀린 Notation등을 수정하여 다시 기술해보면 다음과 같다.)


Final Comment

Gram-Schmidt 정규직교화는 이미 주어진 부분공간에 대한 기저를 활용하여, 같은 부분공간을 span하는 정규직교를 찾는 알고리즘이다. 기준이 되는 기저의 벡터를 정하고 나머지 벡터 중 하나를 골라 정사영을 펼쳐나감으로써 직교기저를 찾는 방법이다.

[Refinalized] [Final OK by TA] QR분해에서 (질문과 답^^) <--- Comment 달아 Finalize 하면 될 듯^^ by 신@@, 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 4월 25일 오전 00:05


[Final OK by TA] QR분해에서 (질문과 답^^) <--- Comment 달아 Finalize 하면 될 듯^^ by 신@@, 이상구 교수님

작성자 : 임동선(2017****79)작성일 : 4월 3일 오후 5:55

조회수 : 9

 

교수님, QR분해에서, A=QR이라고 할 떄, R은 A의 REF중의 하나가 되는 것인가요??

http://matrix.skku.ac.kr/2018-album/LS-QR-decom.html

▶ QR 분해  http://matrix.skku.ac.kr/2018-album/LS-QR-decom.html (실습!)

행렬 가 개의 일차독립인 열들을 가지면 여기에 Gram-Schmidt의 정규직교화과정을 적용하여 얻은 정규직교벡터들을 열로 하는 행렬 를 만들어 행렬  (여기서 은 상삼각행렬)로 분해가 된다. QR 분해는 최소제곱문제와 고윳값, 고유벡터를 구하는 문제를 해결하는데 많이 사용된다.

정리.

 QR 분해

행렬 가 rank 인  행렬이라면, 로 분해가능하다. 여기서 는 의 열공간 Col의 정규직교기저로 만들어진  행렬이고, 은 가역인 크기 의 상삼각행렬이다.

이제 행렬 이고 인 경우 라 하자. Gram-Schmidt 정규직교화 과정에 의하여 행렬 의 열공간 의 정규직교기저 을 얻을 수 있다. 이제 와  사이의 관계를 알아보자.

가 Col의 정규직교기저이므로

       

       

          

       

로 표현가능하다. 또한  ()이므로 위의 표현은 다음과 같이 간단하게 표현가능하다. 즉,

       

       

         

       .

이제 다음과 같이 상삼각행렬(upper triangular matrix) 을 정의하고,

       

앞서 정의한 행렬 와의 곱을 생각해보자. 행렬 곱 의 번째 열벡터는 이므로 의 번째 열벡터의 성분을 계수로 하는 의 열벡터들의 일차결합이다. 따라서

      

              (1)

즉,  이다. 위에서 만들어진 차 정사각 삼각행렬 은 주대각성분이 모두 영이 아니므로, 가역행렬이다. 또한 이므로 는 (column) 직교행렬이다. 따라서 우리는 QR 분해(QR decomposition)  를 얻은 것이다.

  행렬 가 다음과 같이 주어졌을 때 -분해를 구하여라.

    

풀이. 행렬 가 full column rank를 가지고 있으므로 QR 분해가 존재함을 알 수 있다. Gram-Schmidt 정규직교화를 다음 벡터들에 적용해보자.

      

그러면 정규직교화 과정을 통해 직교행렬 를 다음과 같이 구할 수 있다.

      (직교벡터!! 열벡터의 내적들이 모두 zero)

그러면 앞의 (1)식으로부터 (삼각행렬) 을 구하면,

     (삼각행렬)

따라서 다음과 같은 QR 분해를 얻을 수 있다.

     (QR 분해 )

                                                     

 아래는 Sage가 제공하는 gram_schmidt() 함수를 수정하여 좀 더 직관적으로 그 과정을 확인하도록,  gs_orth() 함수 코드를 만들어 QR 분해를 확인하였다. (자주 사용하는 함수는 함수 코드를 만들어 활용한다.)


# SageMath의 gram_schmidt() 함수를 보완하여  gs_orth()을 만들었음
def gs_orth(A):          # 함수 정의
    
    m, n = A.nrows(), A.ncols()   # 행렬의 크기
    r = A.rank()   # 행렬의 rank
    
    if m < n:  # 행렬의 크기 확인
           raise ValueError("The number of rows must be larger than the number of columns.")
        
    elif r < n:  # full column rank인지 확인
        
        raise ValueError("The matrix is not full column rank.")
    
    [G, mu] = A.transpose().gram_schmidt()   # gram_schmidt 함수 활용
    Q1 = matrix([G.row(i) / G.row(i).norm() for i in range(0, n)]) # Q의 transpose
    R1 = Q1*A
    Q = simplify(Q1.transpose())  # 정규직교기저로 만들어진 행렬
    R = simplify(R1)              # 상삼각행렬
    
    return Q, R


A = matrix([[1, 0, 0], [1, 1, 0], [1, 1, 1]])  # 행렬 입력
Q, R = gs_orth(A)  # QR 분해
print("Q =")
print(Q)
print()
print("R =")
print(R)
print()
print("Q*R =")
print(Q*R)


▶ 최소제곱문제를 QR 분해로 풀기

  앞서 학습했듯이, 의 최소제곱해란 normal equation인 의 해이다. 여기서 가 가역행렬이라면 가 그 해가 된다. 그렇다면 의 역행렬을 구하는 것이 최소제곱해 문제를 해결하는 가장 중요한 열쇠가 된다. 이를 QR 분해를 이용하여 구해보자.

가 full column rank를 가지면, 다음과 같이 QR 분해된다.

                               

그러면

       

                           (양변에 를 취해주자.)

                      

이제 (이 가역행렬이므로) 여기에 후진대입법(backward substitution)을 적용하면,

          (유일해)

가 된다. 이와 같이 QR 분해는 선형연립방정식의 (최소제곱)해를 역행렬을 구하지 않고 손쉽게 구할 수 있도록 해주므로 다양한 계산이 필요한 컴퓨터 알고리즘의 연구에서 가장 중요한 도구로 여겨진다. QR 분해의 이론에 대해 좀 더 자세한 내용은 아래 주소를 참고하라.

http://matrix.skku.ac.kr/nla/ch7.htm                 

http://matrix.skku.ac.kr/sglee/03-Note/QR-Decomp.htm 

http://matrix.skku.ac.kr/sglee/project/generalized-inverse/ 


  다음 문제의 최소제곱해를 구하여라.

    

풀이  계수행렬 는 다음과 같이   분해된다.

    

이를 이용하면, 최소제곱해   를 얻는다.

  최소제곱해 ■

# Sage의 gram_schmidt 함수를 보완하여 작성
def gs_orth(A):          # 함수 정의
    
    m, n = A.nrows(), A.ncols()   # 행렬의 크기
    r = A.rank()   # 행렬의 rank
    
    if m < n:  # 행렬의 크기 확인
        raise ValueError("The number of rows must be larger than the number of columns.")
    elif r < n:  # full column rank인지 확인
        raise ValueError("The matrix is not full column rank.")
    
    [G, mu] = A.transpose().gram_schmidt()   # gram_schmidt 함수 활용
    Q1 = matrix([G.row(i) / G.row(i).norm() for i in range(0, n)]) # Q의 transpose
    R1 = Q1*A
    Q = simplify(Q1.transpose())  # 정규직교기저로 만들어진 행렬
    R = simplify(R1)              # 상삼각행렬
    
    return Q, R

A = matrix([[1, 3, 5], [1, 1, 0], [1, 1, 2], [1, 3, 3]])  # 계수 행렬 입력
b = vector([2, 3, -1, 2])  # 상수항 벡터 입력
Q, R = gs_orth(A)         # QR 분해
print(R.solve_right(Q.transpose()*b))  # 최소제곱해


http://matrix.skku.ac.kr/math4ai/part1/


Final Comment

A의 QR분해는 RREF와는 관련이 없으며, 상삼각행렬의 편리함을 활용하기 위하여 사용하는 것이다. Gram-Schmidt 정규직교화 알고리즘이 선행되어야 하는데, 이 알고리즘을 사용하려면 먼저 A가 Full Column Rank여야 한다. 즉, QR분해가 가능하려면 A가 Full Column Rank여야 한다.



[Refinalized][Final OK by TA] 선형변환 T에 대한 이해 by 신@@ , 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 4월 24일 오후 11:58


[Final OK by TA] 선형변환 T에 대한 이해 by 신@@ , 이상구 교수님

작성자 : 임동선(2017****79)작성일 : 4월 3일 오후 5:59

조회수 : 5

 

교수님, 선형변환 T의 kernel이라는 것이,

[T]의 null space라고 이해하면 맞나요??  

http://matrix.skku.ac.kr/math4ai/part1/ 

5.2 핵(kernel)과 치역(range)

참고 동영상: http://youtu.be/9YciT9Bb2B0  http://youtu.be/H-P4lDgruCc

실습 사이트: http://matrix.skku.ac.kr/knou-knowls/cla-week-8-Sec-6-3.html


정의.

 핵(kernel), 단사, 전사, 전단사, 동형사상(isomorphism)

(1) 이 선형변환일 때, 에 의한 상이 이 되는  안의 벡터 전체의 집합을 의 핵(kernel)이라 하고 로 나타낸다. 즉

              

               

(2) 변환 가 를 만족하면 단사(one-to-one; injective)라 한다.

(3) 선형변환 에 대하여, 임의의 의 상 전체의 집합을 의 치역(range)이라 하고 로 나타낸다. 즉,

                     .

특히, , 즉 변환 가 임의의 에 대해 인 가 존재하면 전사(onto, surjective)라 한다.

(4) 선형변환 가 단사이고 전사 (전단사)이면 이 되고, 를 에서 으로의 동형사상(isomorphism)이라고 한다.

T가 R^n에서 R^m으로의 일차변환이라고 하면,

단사인 경우 n≤m 이어야 하겠죠~ 단사를 함수적 관점에서 보면 일대일 함수에 해당하는거구요~

T가 단사이기 위한 필요충분 조건이 ker T={0} (0벡터) 라고 하셨는데,

그 얘기는 [T]의 열벡터들이 일차독립이라는 얘기이기도 하겠군요.

이 얘기는 [T]가 Full  Row   열 Column Rank라는 얘기이기도 하고,

T가 단사이면서 전사이기도 하다면 함수적 관점에서는 일대일대응 함수가 되는 것이고, 당연하게 m=n이 되면서 [T]가 정사각행렬이 될 것이고, 역행렬이 존재한다는 사실로도 나아갈 수 있겠네요..


이상구(LEE SANGGU)3월 24일 ‎오후‎ ‎3‎:‎06

선형변환 T의 kernel 은 T(x) =[T](x) = Ax = 0 되는 모든 x 들의 집합이므로 [T]의 null space라고 이해하면 맞습니다^^ 아주 잘 이해 하셨습니다.


이상구(LEE SANGGU)3월 24일 ‎오후‎ ‎3‎:‎08

2. T가 R^n에서 R^m으로의 일차변환이라고 하면, 단사인 경우 n≤m 이어야 합니다. 맞습니다. 단사를 함수적 관점에서 보면 1-1 함수에 해당하는 것이 맞습니다.

2. T가 단사이기 위한 필요충분 조건이 ker T={0} (0벡터) 라고 하셨는데, 그 얘기는 [T]의 열벡터들이 일차독립이라는 얘기입니다^^ <--- 맞습니다.

2. 이 얘기는 [T]가 Full 열(Column) Rank라는 얘기입니다^^ ( 행 Row 가 아닙니다!! <-- 이것만 혼돈하셨습니다)


이상구(LEE SANGGU)3월 24일 ‎오후‎ ‎3‎:‎09

T가 단사이기 위한 필요충분 조건이 ker T={0} (0벡터) 라고 하셨는데, 그 얘기는 [T]의 열벡터들이 일차독립이라는 얘기이기도 하겠군요. 이 얘기는 [T]가 Full Row Rank라는 얘기이기도 하고,

3. T가 단사이면서 전사이기도 하다면 함수적 관점에서는 일대일대응 함수가 되는 것 맞습니다. 그래서 역함수가 존재합니다. 당연하게 m=n이 되면서 [T]가 정사각행렬이 될 것이고, 가역행렬이 되고, 역행렬이 존재한다는 사실로도 나아갈 수 있습니다^^ < --- 모두 정확하게 이해하셧습니다.


신@@(2013****84)3월 24일 ‎오후‎ ‎3‎:‎15

아아 열벡터들이 곧 열공간의 기저이고 그 기저의 개수가 열공간의 차원이자 행렬 A의 Column Rank이니 Full Column Rank라고 하는 것이 올바른 표현이겠군요~


이상구(LEE SANGGU)3월 24일 ‎오후‎ ‎4‎:‎06

신군이 학구적이니까 너무 좋습니다^^ 그런데 Math4AI 는 성격이 좀 다른 Math & Coding 시간 이니까 ... ... 우선은 ...

(1) 제공한 용어와 개념을 주어진 대로 아주 쉽게 받아들이면서 ... (개념에 대하여 토론 하고) (구체적인 ... 각각의) 이미 잘 알려진 Fact 증명하는 것은 조금 미루고 (2) 먼저 Part 1 과 part 2 의 문제 풀이와 코드를 쭉 보면서 이해 하시고 ...

(3) 유사한 문제 를 코드를 바꾸어 가면서 하나 씩 풀어서 공유 하시고 ^^ 그럼 훨씬 자신감이 생기고 자신이 하고자 하는 말이 (conjecture) 맞는지 틀리는 지를 쉽게 확인이 가능합니다^^

(4) 그 다음에 ... 구체적인 detail 을 증명하는 것은 나중이나 Matrix Theory 과목 에서 집중적으로 하는 것이 효과적이니 ... 그렇게 추천할께요^^


신@@(2013****84)3월 24일 ‎오후‎ ‎4‎:‎14

아하 네넵 알겠습니다



Final Comment

선형변환의 핵과 치역, 전사, 단사에 대한 내용은 행렬의 성질과 함수의 정의역, 치역, 공역, 일대일함수, 일대일대응 내용을 결합하면 어렵지 않게 이해할 수 있음을 깨달았다.




[Refinalized] [Final OK by TA] 서로 다른 eigenvector의 orthogonality by 신@@, 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 4월 24일 오후 11:55

조회수 : 0

[Final OK by TA] 서로 다른 eigenvector의 orthogonality by 신@@, 이상구 교수님

작성자 : 임동선(2017****79)작성일 : 4월 3일 오후 6:00

조회수 : 3

 

n차 정사각행렬의  서로 다른 고유 값에 대응하는 eigenvector 들은 일차독립이다.  그리고 며, 인 가 n개 존재하는데, 이들이 서로 orthogonal 하다고 하셨습니다. 그 이유가 무엇인가요??


이상구(LEE SANGGU)3월 24일 ‎오후‎ ‎3‎:‎55

Fact: eigenvectors with distinct eigenvalues are orthogonal. 신 군이 궁금해 한 정리는 이것인 듯하네요^^ : Eigenvectors of real symmetric matrices are orthogonal 증명은 여기에 있습니다.

https://math.stackexchange.com/questions/82467/eigenvectors-of-real-symmetric-matrices-are-orthogonal 입니다^^


이상구(LEE SANGGU)3월 24일 ‎오후‎ ‎3‎:‎57

How do I prove that eigenvectors corresponding to distinct eigenvalues of a real symmetric matrix are orthogonal?

https://www.quora.com/How-do-I-prove-that-eigenvectors-corresponding-to-distinct-eigenvalues-of-a-real-symmetric-matrix-are-orthogonal

증명;

http://matrix.skku.ac.kr/2010-Album/2010-MT-all-Solution-v1-sglee/2010-MT-all-Solution-v1-sglee.html (IE 에서 보세요)


또는

Alexander Farrugia, frequent user of linear algebra.

Answered Sep 8, 2016


Take a real symmetric matrix ݑ€, and two distinct eigenvalues of ݑ€, ݜ†1 and ݜ†2, such that ݑ€ݑ¥1=ݜ†1ݑ¥1 and ݑ€ݑ¥2=ݜ†2ݑ¥2. From ݑ€ݑ¥1=ݜ†1ݑ¥1, we get ݑ¥2ݑ‡ݑ€ݑ¥1=ݜ†1ݑ¥2ݑ‡ݑ¥1. From ݑ€ݑ¥2=ݜ†2ݑ¥2, we similarly obtain ݑ¥1ݑ‡ݑ€ݑ¥2=ݜ†2ݑ¥1ݑ‡ݑ¥2. But since ݑ€ is symmetric, ݑ¥2ݑ‡ݑ€ݑ¥1=ݑ¥2ݑ‡ݑ€ݑ‡ݑ¥1=(ݑ€ݑ¥2)ݑ‡ݑ¥1=ݑ¥1ݑ‡(ݑ€ݑ¥2)=ݑ¥1ݑ‡ݑ€ݑ¥2. Also, clearly ݑ¥1ݑ‡ݑ¥2=ݑ¥2ݑ‡ݑ¥1. Thus ݜ†1ݑ¥1ݑ‡ݑ¥2=ݜ†2ݑ¥1ݑ‡ݑ¥2 (ݜ†1−ݜ†2)(ݑ¥1ݑ‡ݑ¥2)=0. But ݜ†1−ݜ†2≠0. Hence ݑ¥1ݑ‡ݑ¥2=0, as required.


신@@(2013****84)3월 24일 ‎오후‎ ‎3‎:‎58

네넵 감사합니다!


Final Comment

대칭행렬의 eigenvector들이 왜 orthogonal한지는 전치행렬에 대한 성질로써 유도가 가능하다는 것을 깨달았다.

[Refinalized] [Final OK by TA] 행렬의 대각화에 대한 설명 정리 by 신@@, 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 4월 24일 오후 11:48


[Final OK by TA] 행렬의 대각화에 대한 설명 정리 by 신@@, 이상구 교수님

작성자 : 임동선(2017****79)작성일 : 4월 3일 오후 6:02

조회수 : 5

 

http://matrix.skku.ac.kr/knou-knowls/CLA-Week-13.html 


이상구(LEE SANGGU)3월 24일 ‎오후‎ ‎4‎:‎48

맞습니다. (행렬 이 n 개의 1차독립인 고유벡터를 갖는 경우 ... < 모든 행렬이 이 성질을 갖지는 않지만 > (실) 대칭행렬은 언제나 이 성질을 갖습니다.

[ (복소) Normal 행렬은 iff (if and only if) n 개의 1차독립인 고유벡터를 갖습니다. ] )

http://matrix.skku.ac.kr/knou-knowls/CLA-Week-13.html

그럼 P^-1 A P = D = diag { n 개의 고윳값들 } 로 주어진 행렬 A 에 닮음인 대각선 행렬 D 를 쉽게 구하는 것입니다^^


이상구(LEE SANGGU)3월 29일 ‎오후‎ ‎2‎:‎16

신@@ 군, 증명은

http://matrix.skku.ac.kr/2008-Lecture/LAA-sglee/index.html 에 모두 있어요^^ 그리고 실습실은 http://matrix.skku.ac.kr/knou-knowls/ 에 대부분 있습니다^^ 참고하여 정리하면서 ... 누구보다 먼저 적극적으로 ... 공유하고 A 를 받으세요^^


신@@(2013****84)3월 31일 ‎오후‎ ‎8‎:‎57

아하 네넵 알겠습니다!



Final Comment

대각화에 대한 중요한 개념들을 한번 쓰면서 정리가 되었다. 대각화의 결말은 주대각선 성분을 고유벡터로 만들어 분석하기 쉽게, 고윳값과 고유벡터로써 얻어지는 많은 성질들을 활용하는 데에 있다. Hermitian 행렬과 Unitary 행렬에 대해서는 복소행렬 내용이라 아직 정확한 이해가 어렵지만 차근차근 보고 이해하며 기존의 선형대수학 지식을 한층 넓혀가야겠다.

1. 책에 제시된 REF와 RREF의 정의에 대한 질문 – 김예훈(2020****54)

*질문

책에서는 행렬이 REF이면, 각각의 행의 선행요소는 1이 되어야 한다고 정의하고 있습니다.

하지만 다른 책(Linear Algebra and It's Applications)을 학습하면서, 정의가 서로 맞지 않다는 것을 깨달았습니다.



If a matrix in echeon form satisfies the following additional conditions, then it is in reduced echelon form(or RREF).

    The leading entry in each nonzero row is 1.

    Each leading 1 is the only nonzero entry in its column.

(Linear Algebra and It's Applications 내용 일부 인용)





http://matrix.skku.ac.kr/math4ai/



 행렬 가 다음 3가지 성질을 만족할 때, 행 사다리꼴(row echelon form, REF)이라고 한다.


 (1) 성분이 모두 0인 행이 존재하면 그 행은 행렬의 맨 아래에 위치한다.

 (2) 각 행에서 처음으로 나타나는 0이 아닌 성분은 1이다. 이때 이 1을 그 행의 선행성분(leading entry, leading 1)이라고 한다.

 (3) 행과 행 모두에 선행성분이 존재하면 ()행의 선행성분은 행의 선행성분보다 오른쪽에 위치한다.


 또 행 사다리꼴 행렬 가 다음 4번째 성질을 추가로 만족하면 를 기약 행 사다리꼴(reduced row echelon form, RREF)이라고 한다.

 (4) 선행성분(leading entry in row)을 포함하는 열의 선행선분 외의 성분은 모두 0이다.


    실습 사이트: http://matrix.skku.ac.kr/knou-knowls/CLA-Week-2-Sec-2-2.html (실습하세요!)



                교재가 모두 맞습니다^^


아마   이 부분은 오류로 보는 것이 맞을까요?         <---     교재가 모두 맞습니다^^ 

*답변

오류 없습니다. 정의를 다시 보세요. 모든 책이 똑 같습니다.


1.row echelon form (or REF) 정의와 2. reduced row echelon form (or RREF).


둘 다

The leading entry in each nonzero row is 1. 와 각각 추가 2개와 3개 조건을 가집니다 .


이러한 질문을 한 이유는 REF의 정의를 읽으면서, 이것이 RREF의 정의가 아닌가라는 의문을 해결하기 위함이었다. 이전에 Linear Algebra and It’s Applications에서 학습한 내용에 따라 그 조건이 RREF라고 알고 있었다. 질문에 대한 답변으로 교수님께서는 책의 정의가 맞다고 하셨다.

Wikipedia의 영문으로 정의된 RREF를 읽었을 때는 의문점이 해소되지가 않았다. 여기서도 “0이 아닌 행 각각의 선행성분이 1이다.”가 RREF의 조건으로 나와있기 때문이었다.

하지만 Wikipedia의 한글 문서에서 새로운 사실을 알게 되었다. 바로 일부 문헌에서는 선행 계수 자체를 1로 표기한다는 것이다. 즉, 몇몇 문헌에서는 단순히 선행 계수(Leading Entry)라고 말하면, 그 자리의 값이 1이 된다는 것을 내포하고 있는 것이다. 그리고 RREF가 REF의 정의를 포괄하기에, REF에서 모든 선행계수가 1이면, 자동으로 RREF의 조건을 만족하게 된다.

그러나 Wikipedia의 Pivot에 대한 설명에서는, “종종 Pivot에 1이 오기는 하나, 1이 아닌 값도 가능하다“라고 설명하고 있다. (Pivot은 Leading Entry과 동등한 의미를 지니고 있다)

Wikipedia의 내용으로는 어느 쪽이 맞다고 결론을 내릴 수 없었다.


인터넷에서 계속 검색을 해보니, “The leading entry in each nonzero row is 1”이 REF의 조건이라고 보는 관점과 RREF의 조건이라고 보는 관점이 서로 섞여있었다.

RREF 관점 : https://blog.naver.com/hyunmonn/221826660033

REF 관점 : https://blog.naver.com/ptm0228/221888794878

저 주소 말고도 다양한 자료들이 있었는데, 비교적 최신에 작성된 글(2020년에 작성됨)만을 추려보았다. 이 두 관점의 차이는 REF의 Pivot 값이 모두 1이냐 1이 아니냐의 문제가 되는 것인데, 사실 이는 크게 중요하지 않다. 다음과 같은 행렬이 있다고 가정하자.

[ 1, 2, 0 ]     [ 1, 2, 0 ]

[ 0, 0, 2 ]  ~  [ 0, 0, 1 ]

[ 0, 0, 0 ]     [ 0, 0, 0 ]

전자의 관점을 지니는 사람은 왼쪽 행렬은 REF가 아니라고 볼 것이고(2번째 행의 Pivot이 1이 아니기 때문이다), 후자의 관점을 지니는 사람은 왼쪽 행렬이 REF에 해당한다고 볼 것이다. 그리고 전자는 오른쪽 행렬을 REF이면서, RREF에 해당한다고 볼 것이고, 후자는 왼쪽 행렬과 오른쪽 행렬이 REF이고, 오른쪽 행렬만 RREF에 해당한다고 볼 것이다. 사실 이것을 엄격하게 구분할 필요가 없는 이유는 왼쪽 행렬과 오른쪽 행렬이 상등(Row Equivalent)이기 때문이다. 왼쪽 행렬은 ERO(Elementary Row Operation)으로 오른쪽 행렬을 만들 수 있으며, 그 역 또한 성립한다.


이러한 2가지 관점이 존재하는 이유는 아마 계산을 수행할 때, REF보다는 RREF를 자주 사용하기 때문인 것 같다. 또한 단순히 REF는 RREF를 만들기 위한 과정으로 전락되었기 때문일 수도 있다. 정확한 REF의 정의를 내릴 필요가 없어지게 되자, REF의 개념이 이중성을 지니게 된 것이다.


정리하면, REF에 대하여 두 가지 관점이 존재한다. 이 조건(“The leading entry in each nonzero row is 1”)이 REF에 해당한다는 관점과 RREF에 해당한다는 관점이다. 교수님께서는 전자의 관점을, 필자는 후자의 관점을 지니고 있는 것이었다. 사실 이 둘을 엄격하게 구분할 이유는 없다. 위에서 말한 대로 REF의 비중이 크지 않아서, RREF에 종속되는 것이라서 REF에 대한 정확한 정의를 내릴 필요가 없어지게 된 것이다. 그래서 결론은 관점의 차이일 뿐, 둘 다 맞는 표현이다.


2. [문제 변형] - 함수의 그래프와 극한 – 김예훈(2020****54)

1번과 2번 문제를 변형하여 풀어보았습니다.

1. 함수 f(x) = e^(-x)-1 (-1 < x < 0) / sin(x) (0 < x < pi) / x-pi (4 > x > pi)의 그래프를 그리시오.


<예시 코드>

#함수 정의

f(x) = e^(-x)-1 # -1 < x < 0

g(x) = sin(x) # 0 < x < pi

h(x) = x-pi # pi < x < 4


#plot 선언 후, EXP1에 할당

EXP1 = plot(piecewise([[(-1, 0), f(x)], [(0, pi), g(x)], [(pi, 4), h(x)]]), xmin=-1, xmax=4)


#EXP1 출력

show(EXP1)


<실행 결과>


#plot 기능을 사용하기 위해서 Jupyter Notebook을 사용하였습니다.


2. 극한 lim(x  -- > pi/2)(tan(x)/|x-pi/2|)가 존재하면 값을 구하시오. 만일 값이 정의되지 않는다면(Not defined), 그 이유를 설명하시오.


<예시 코드>

f(x) = tan(x)/abs(x - pi/2) #함수 정의



limit(f(x), x = pi/2, dir="-") #좌극한 확인

limit(f(x), x = pi/2, dir="+") #우극한 확인


<실행 결과>

+Infinity

-Infinity


<결론>

좌극한과 우극한이 모두 무한대이기 때문에, 극한값은 존재하지 않는다.


#양의 무한대와 음의 무한대는 서로 다른 문자이지만, Sage에서는 이 둘을 같은 문자로 취급합니다. 즉, bool(limit(f(x), x = pi/2, dir="-") == limit(f(x), x = pi/2, dir="+"))은 True입니다.


<Comment>

황인성(2019****19)

1번 문제는 범위에 따라 서로 다른 함수를 그릴 수 있도록 Sage 코드를 짠 것이고

2번 문제는 특정 함수를 이용해 좌극한과 우극한을 확인하는 방법, 그리고 이를 바탕으로 극한값의 유무를 구하는 코드이네요

극한과 관련된 개념을 이해하는데 충분히 도움이 되었다고 생각합니다


김예훈(2020****54)

의견 달아주셔서 감사합니다.


3. [문제 변형] - 도함수와 접선의 방정식 – 김예훈(2020****54)

3번과 4번 문제를 변형하여 풀어보았습니다.


3. x^3 + 2e^x + ln(x)의 제 1계, 제 2계, 제 3계 도함수를 각각 구하시오.


<예시 코드>

f(x) = x^3 + 2*e^x + ln(x) #함수 정의

#for문을 이용한 연속적인 처리

for n in range(3):

    f(x) = diff(f(x), x)

    print("제 %d계 도함수 :" %(n+1), f(x))


<실행 결과>

제 1계 도함수 : 3*x^2 + 1/x + 2*e^x

제 2계 도함수 : 6*x - 1/x^2 + 2*e^x

제 3계 도함수 : 2/x^3 + 2*e^x + 6



#반복적인 과정을 단순화시키기 위해, for문을 사용하였습니다.

#Sagemath는 Python을 기반으로 하기 때문에, 예시처럼 Python 언어를 사용하여 표현할 수 있습니다.‘


4. 점 (0, 2)에서 함수 y = cos(2x) + e^x에 대한 접선의 방정식을 구하시오.


<예시 코드>

f(x) = cos(2*x) + e^x #함수 정의

f1(x) = diff(f(x), x) #함수 미분

y(x) = f1(0)*(x - 0) + f(0) #접선 정의

print("y =", y(x)) #출력

y = x + 2


<실행 결과>




<Comment>

이제 대부분의 주어진 (n차 미분가능한) 함수의 도함수 구하는 것은 문제 없겠네요^^^ 잘했어요^^


​# http://matrix.skku.ac.kr/KOFAC/ 에서 실습

f(x) = x^3 + 2*e^x + ln(x) #함수 정의


#for문을 이용한 연속적인 처리

for n in range(17):

        f(x) = diff(f(x), x)

        print("제 %d계 도함수 :" %(n+1), f(x))


제 1계 도함수 : 3*x^2 + 1/x + 2*e^x

제 2계 도함수 : 6*x - 1/x^2 + 2*e^x

제 3계 도함수 : 2/x^3 + 2*e^x + 6

제 4계 도함수 : -6/x^4 + 2*e^x

제 5계 도함수 : 24/x^5 + 2*e^x

제 6계 도함수 : -120/x^6 + 2*e^x

제 7계 도함수 : 720/x^7 + 2*e^x

제 8계 도함수 : -5040/x^8 + 2*e^x

제 9계 도함수 : 40320/x^9 + 2*e^x

제 10계 도함수 : -362880/x^10 + 2*e^x

제 11계 도함수 : 3628800/x^11 + 2*e^x

제 12계 도함수 : -39916800/x^12 + 2*e^x

제 13계 도함수 : 479001600/x^13 + 2*e^x

제 14계 도함수 : -6227020800/x^14 + 2*e^x

제 15계 도함수 : 87178291200/x^15 + 2*e^x

제 16계 도함수 : -1307674368000/x^16 + 2*e^x

제 17계 도함수 : 20922789888000/x^17 + 2*e^x


for 문을 이용하여 연속적인 미분 과정을 수행하면 편리하기는 하나, 교수님께서 말씀하신 대로 함수에 대한 n번째까지의 도함수가 존재한다는 것이 전제되어야 한다. 미분 도중에 미분 불가능한 함수가 나오게 되면, 그 후에 작업은 이루어지지 않을 것이다. 그래서 Python 내에 있는 예외 처리 기능인 try, except를 사용하여 이러한 문제를 해결할 수 있다.


<수정된 코드>

f(x) = x^3 + 2*e^x + ln(x) #함수 정의


#for문을 이용한 연속적인 처리

for n in range(3):

        try:

                f(x) = diff(f(x), x)

                print("제 %d계 도함수 :" %(n+1), f(x))

        except:

                break


4. 3차원 그래프 코딩 이해 - 신재열(2013****84)


var('t') # https://sagecell.sagemath.org/

r = vector([cos(2*t), sin(3*t), t]) # Define r(t)

C = parametric_plot3d(r, (t, 0, 2*pi), color = 'green', thickness = 2) #

Sketch curve

t1 = pi/10 # location of arrows

t2 = 2*pi/3

t3 = 5*pi/3

Ar1 = arrow3d(r(t = t1), r(t = t1+0.1), color = 'green') # Draw arrows

Ar2 = arrow3d(r(t = t2), r(t = t2+0.1), color = 'green')

Ar3 = arrow3d(r(t = t3), r(t = t3+0.1), color = 'green')

C + Ar1 + Ar2 + Ar3


마지막 줄이 의미하는 바가 무엇인지 잘 모르겠습니다. 한 좌표공간 안에 t의 자취에 따라 그려지는 곡선과 세개의 화살표를 그리라는 것인가요?


곡선이 그려진 그림 자체를 변수 C에 대응하였고


t가 0.1만큼 변할 때 지나가는 자취로써 그려지는 화살표 세개를 Ar1, Ar2, Ar3 변수에 저장한 것이라고 이해하였는지 맞는지 궁금합니다..


<comment>

이상구(LEE SANGGU)

마지막줄 에 빠진 명령어 채우세요^^


김예훈(2020****54)

Sketch curve앞에 있어야할 #가 없어서 문제가 발생하는 것 같습니다.


이상구(LEE SANGGU)

var('t') # https://sagecell.sagemath.org/

r = vector([cos(2*t), sin(3*t), t]) # Define r(t)

C = parametric_plot3d(r, (t, 0, 2*pi), color = 'green', thickness = 2) #Sketch curve

t1 = pi/10 # location of arrows

t2 = 2*pi/3

t3 = 5*pi/3

Ar1 = arrow3d(r(t = t1), r(t = t1+0.1), color = 'green') # Draw arrows

Ar2 = arrow3d(r(t = t2), r(t = t2+0.1), color = 'green')

Ar3 = arrow3d(r(t = t3), r(t = t3+0.1), color = 'green')

show(C + Ar1 + Ar2 + Ar3)


이상구(LEE SANGGU)4월 17일 오전 11:32

김예훈씨 , 맞습니다. 잘 봤어요^^ 복사해 오면서 줄이 바꾸이었네요^^


5. 대수의 법칙 관련 문제 변형 - 김예훈(2020****54)

*동전을 k번 던져 앞면과 뒷면의 상대도수를 계산한다고 가정하자. 또한 k의 값은 10의 n제곱으로 한정한다. n의 값을 증가시키면서, 각각의 상대도수가 0.5에 수렴하는 것을 보여라.

--------------------------------

res1 = prop.table(table(sample(c('F', 'B'), 10, replace = T)))
res2 = prop.table(table(sample(c('F', 'B'), 100, replace = T)))
res3 = prop.table(table(sample(c('F', 'B'), 1000, replace = T)))
res4 = prop.table(table(sample(c('F', 'B'), 10000, replace = T)))
res5 = prop.table(table(sample(c('F', 'B'), 100000, replace = T)))
res6 = prop.table(table(sample(c('F', 'B'), 1000000, replace = T)))
res7 = prop.table(table(sample(c('F', 'B'), 10000000, replace = T)))
# 'replace = T'는 중복을 허락하여 값을 선택하는 sample의 옵션이다.

print(cbind(res1, res2, res3, res4, res5, res6, res7)) # 값들을 행으로 묶어서 출력

------------------------------





---------------


왼쪽 그래프(B관련 그래프)와 오른쪽 그래프(F관련 그래프)는 index 1에서 index 3까지 산발적인 형태를 보이나, index 4에서부터는 0.5에 수렴하는 양상을 보인다. 이것으로 보아 대수의 법칙은 직관적으로 성립한다고 할 수 있다.


이상구(LEE SANGGU)5월 11일 오전 7:01

대수의 법칙이 성립하는 것을 직관적으로 확인 할 수 있어서 좋습니다.


6. 라이브러리 설치 관련 문제해결 – 김예훈(2020****54)

조건부 확률 문제를 푸는 과정에서, 'sets'라는 라이브러리를 사용하지만, 실제 그 라이브러리를 불러오는 명령어를 입력하면 다음과 같은 오류가 뜨는 것을 확인하였습니다.

library('sets')
Error in library("sets") : there is no package called ‘sets’

오류의 원인은 'sets'라는 라이브러리가 존재하지 않는다는 것입니다. 그래서 그 라이브러리를 따로 설치하는 과정이 있어야 합니다. 하지만 sagemath의 sagecell은 R에 대한 라이브러리가 설치되어 있지 않은 형태이며, sagemath.org 서버의 쓰기(Writing) 자체가 막혀있기 때문에 설치 명령어도 작동하지 않습니다.

더이상 sagemath에서는 'sets'라는 라이브러리를 사용할 수 없을 것 같아서, 컴퓨터에 직접 r-base를 설치하여 라이브러리를 설치하는 방법으로 전환하였습니다.

 

설치 방법은 간단합니다.

install.packages('이름') : 패키지 설치

remove.packages('이름') : 패키지 제거

update.packages() : 패키지 업데이트

위의 명령어를 이용하여 install.packages('sets')라고 입력하면 자동으로 설치가 됩니다.





    

  

도움이 되고자, 개인적으로 경험했던 문제의 해결방법을 올려봅니다.


이상구(LEE SANGGU)5월 10일 오후 8:48

굿^^http://math1.skku.ac.kr/home/pub/보시고http://math1.skku.ac.kr 에서 id 만들고 사용 하시면, 라이브러리 사용도 자연스레 가능 합니다.

이상구(LEE SANGGU)5월 11일 오전 4:42

Good. 김예훈 씨,해 보는 것이 제일중요합니다. 그런데 ... part 3 책 보면서 궁금 한 것은 없었나요? 질문하는 것도 학습의 중요한 부분이고, 더 중요한 것은1. 다른 학생의 풀이를 보고 comment 주는 것도 중요한 수업의 일부이니 ... try to give your comment or 답글그 외에는 모두 잘했습니다.

김용훈(2019****23)5월 11일 오후 10:07

이 글 내용이 이해하기에 복잡해보입니다. 혹시 괜찮다면 라이브러리관련된 난관에 봉착한 저의 글을 읽어주실 수 있나요?

이상구(LEE SANGGU)5월 12일 오후 6:26

지금은 라이브러리 사용이 목표가 아니니 ... 책을 먼저 따라서 해보시고 책 안의 내용 이해 안되것 질문 하세요. 아래는 우리가 어제 만든 도구인데 ...  

http://sagecell.medicyan.info/?q=eqzpmz 은 라이브러리 사용 합니다.

7. 조건부 확률 관련 문제 변형, 신재열 님 ... 답 확인 부탁합니다^^ [수정 완료] - 김예훈(2020****54)


*1000명의 사람이 한 장소에 모인다고 가정하자. 이중에서 30%는 걸어서, 50%는 대중교통을 이용하여, 20%는 자가용을 이용하여 왔다고 한다. 또한 자가용을 이용한 사람의 70%, 대중교통을 이용한 사람의 40%, 도보를 이용한 사람의 0%는 타 지역 거주자이다. 타 지역 거주자의 수는 몇 명인가? 그리고 타 지역 거주자라는 전제에서, 그 사람이 대중교통을 이용하였을 확률은 몇인가?

------------------------------

#확률
A = 0.3 # 도보
B = 0.5 # 대중교통
C = 0.2 # 자가용

# 조건부 확률
EX_A = 0.0
EX_B = 0.4
EX_C = 0.7

# 첫 번째 문제
print("%d" %int(1000*(A*EX_A + B*EX_B + C*EX_C)))

# 두 번째 문제
EX = (A*EX_A + B*EX_B + C*EX_C)
B_EX = EX_B*B/EX
print(B_EX)

------------------------------

     



------------------------------

타 지역 거주자의 수는 340명이며, 타 지역 거주자 중, 그 사람이 대중교통을 이용할 확률은 약 58.82353, 즉 58.8%이다.



이상구(LEE SANGGU)5월 11일 오후 12:07

지금부터 14주차까지 (1) 질문 제일 많이 하는 학생, (2) 답변 제일 많이 하는 학생 중 일부는 (질문과 답변의 질을 일부 고려하여) 모두 A 주려고 합니다. Try^^

김용훈(2019****23)5월 11일 오후 10:20

암산으로 풀어보았는데 자꾸 틀린 답이 나와서 이유를 알아봤더니 도'걸어서 온 사람'의 0%가 타 지역 주민이었다는 부분에 대한 해석이 다른 것 같습니다. 단순히 생각해보았을 때 대중교통을 이용한 사람이 500명인데 그 중 40%면 200명이 타 지역주민이고 자가용을 이용한 200명 중 70%가 타 지역주민이므로 140명이 됩니다. 그리고 걸어서 온 사람 중에서는 타 지역주민이 없으므로 타 지역주민은 340명이 아닌가요? 제가 무엇을 누락하고 생각하는 건지 잘 모르겠습니다.

이상구(LEE SANGGU)5월 12일 오전 9:15

신재율군에게 한번 직접 물어보세요^^

신재열(2013****84)5월 12일 오후 8:38

신재열군인데 오타이신듯하네요..ㅋㅋㅋ

신재열(2013****84)5월 12일 오후 8:43

제가 지금 봤는데 조건부 확률 변수 설정에서 헷갈리셨어요..기본 확률에 대한 변수에서는 A, B, C를 각각 도보, 대중교통, 자가용 데이터를 갖고오셨는데,조건부 확률에 대한 변수를 선언하실 때는 EX_A, EX_B, EX_C를 각각 자가용, 대중교통, 도보 데이터에서 갖고 오셨어요~전혀 관련없는 데서 곱사건의 확률을 계산하였기에 오류가 나왔네요~계산해보면 1번 문제는 340명, 2번 문제는 10/17 나옵니다.

김예훈(2020****54)5월 13일 오전 00:42

죄송합니다.. 코드를 문제와 다르게 작성했네요..지적해주셔서 감사합니다!

8. [FINAL]프로그램 오류발생시 -  김용훈(2019****23)

    

     


    


20200511_220209.jpg

20200511_220218.jpg

20200511_220229.jpg

사진과 같은 오류가 뜨는데 어떻게 해결해야할까요? 김예훈님이 라이브러리관련 글을 게시했기에 참고하려했으나 내용이해가 되지않았고 교수님의 댓글 중 아이디를 만들어 사용하면 라이브러리 이용이 가능하다고 하셨는데 그 때 역시 마찬가지 오류가 떴습니다.


이상구(LEE SANGGU)5월 11일 오후 10:15

이것은 Sage 명령어입니다. 오른쪽 아래 박스에서, R 을 Sage 로 바꾸고 해 보세요^^sagecell.sagemath.org 이나 우리가 새로 만든 http://sagecell.medicyan.info/에서도 해보세요^^

김예훈(2020****54)5월 13일 오전 1:06

늦게 봐서 죄송합니다. 교수님의 말씀처럼, R 언어가 아닌 Sage 언어로 작성된 코드입니다.R 언어로 굳이 바꾸자면, 'Set = ([1, 2, 3])'이라는 표현을 'set =(1, 2, 3)'으로 바꾸어서 사용하실 수 있습니다.또한 cardinality는 집합의 크기이며, R에서는 length를 이용하여 집합의 크기를 표현할 수 있습니다.

library('sets')

s = set(1, 2, 3, 4, 5, 6)

a = set(2, 4, 6)

res = length(a)/length(s)

print(res)

김용훈(2019****23)5월 15일 오전 11:30

R이 아니라 sage 명령어 였군요! 간단히 해결됐습니다. 예훈님의 답변 감사합니다!

9. 책 내용의 사소한 오류 – 김예훈(2020****54)

      

'이산확률함수(Discrete Probability Function)'이라고 표기하는 것이 맞는 것 같은데, 책에서는 '이산확률함수(Probability Function)'이라고 적혀있습니다. 

크게 문제되는 부분은 아니나, 발견을 해서 올려봅니다.  


이상구(LEE SANGGU)5월 17일 오후 1:55

교재 p. ??? 에서'이산확률함수(Discrete Probability Function)' <--- '이산확률함수(Probability Function)' 로 고칩시다^^PBL 보고서에 이런 부분들 자세히 적고 ... Bonus 점수 요구하세요^^ 오타 하나에 1 점씩 Bonus 점수 줄께요^^

김예훈(2020****54)5월 17일 오후 8:19

223 페이지(정의. 확률분포)입니다.

10. 이항분포 관련 R 언어 정리 – 김예훈(2020****54)


*이항분포

[d, q, p, r] + binom

dbinom : d의 의미는 정확히 무엇의 약자인지는 파악하지 못하였으나,  확률변수에 대한 입력값을 이항분포의 이산 확률 함수에 대입하여 값을 제시하는 기능이다. 

    >>>dbinom(입력값, 시행 횟수, 사건이 발생할 확률)

qbinom : q는 양(quantity)를 의미하며, 확률값에 대응하는 입력값을 출력하는 기능이다. 예를 들어 사건이 발생할 확률이 0.5라고 한다면, 그것에 대응하는 값을 출력해준다. 확률에 대응하는 값을 구할 때, 하나의 값이 아닌 한 지점으로부터 끝 지점까지 모두 더한 확률에 대응하는 값을 찾는다. 끝 지점에 대한 방향을 정하고자 할 경우, 'lower.tail' 옵션을 사용하면 된다. 'lower.tail = T'는 왼쪽으로, 'lower.tail = F'는 오른쪽으로 처리한다.

   >>>qbinom(확률, 시행 횟수, 사건이 발생할 확률, lower.tail = T or F)

pbinom : p는 확률(probability)를 의미하며, qbinom과 반대의 기능을 수행한다. 즉, 값을 입력받고 확률을 출력한다. 입력되는 값을 기점으로, 끝 지점까지의 값들을 모두 더하여 확률을 구한다. 위에서 언급한 'lower.tail' 옵션을 사용하여 끝 지점에 대한 방향을 정할 수 있다. 

   >>>pbinom(입력값, 시행 횟수, 사건이 발생할 확률, lower.tail = T or F)

rbinom : r은 무작위(random)를 의미하며, 이항분포에 속하는 모집단에서 제시된 수만큼 무작위로 값을 추출하는 기능이다.

    >>>rbinom(추출 횟수, 시행 횟수, 사건이 발생할 확률)

          



cf) d, p, q, r의 의미는 다른 분포에 대하여 동일하게 적용되는 경우가 많다. 대표적으로 포아송 분포도 dpois, qpois 처럼 사용할 수 있다.

         


이상구(LEE SANGGU)5월 17일 오전 4:26

dbinom : d의 의미는 아마 density (or discrete) 의 약자 일 것입니다.이항분포의 밀도 함수, 누적 분포 함수, 분위수 함수, 난수 발생을 위한 R 함수 및 모수는 다음과 같습니다.구분이항분포(binom) R 함수/모수밀도 함수d dbinom(x, size, prob)누적 분포 함수ppbinom(q, size, prob, lower.tail = TRUE / FALSE)분위수 함수qqbinom(p, size, prob, lower.tail = TRUE / FALSE)난수 발생rrbinom(n, size, prob)출처: https://rfriend.tistory.com/99 [R, Python 분석과 프로그래밍의 친구 (by R Friend)]

김예훈(2020****54)5월 17일 오후 8:24

좋은 정보 주셔서 감사합니다!

11. 이항분포의 평균과 분산 - 김예훈(2020****54)


1. 이항분포의 평균 성립 여부 확인


      

exp의 값(기댓값)과 표본의 평균값이 유사하다는 것을 확인할 수 있다.

그래서 이항분포의 평균이 n*p라는 것은 직관적으로 성립한다.

         

2. 이항분포의 분산 성립 여부 확인


      


표본의 분산이 var의 값(분산)에 근사한다는 것을 확인할 수 있다.

그래서 이항분포의 분산이 n*p*(1-p)라는 것은 직관적으로 성립한다.



(아직 R에서 for문을 사용할 줄 몰라서, 코드를 비효율적으로 작성한 것이 좀 아쉽다)



3. 포아송분포의 평균 성립 여부 확인

       


포아송분포의 평균과 분산은 λ이다. 

확인해보면, 표본의 평균값이 포아송분포의 평균값과 근접한다는 것을 알 수 있다.

그래서, 포아송분포의 평균이 λ라는 것도 직관적으로 성립한다.


이상구(LEE SANGGU)5월 17일 오후 3:40

포아송 분포는 이항분포와 같은 형태의 그래프를 가집니다.또한 포아송 분포같은 경우엔 정말 랜덤한 현상인지 아닌지에 대하여 감지하는데 사용됩니다.예를들어 랜덤한 현상 중 하나인 비행기 사고의 포아송 분포가 포아송 분포형태의 그래프를 가지지 않는다면 비행기 사고가 랜덤하지 않고 의도적으로 발생했다는 것을 말해줍니다. 또한 포아송 분포를 시간에 대해서 보면 event가 몰려서 나오게 되는 특징이 있습니다. 그 이유는 랜덤한 사건을은 몰려서 일어나기 때문입니다. 이것은 실제로 수학적으로도 증명이 되었다고 합니다. 따라서 안좋고 힘든일이 연달아 일어나더라도 힘내서 견디다 보면 좋은날이 올 것 입니다. 만약 안좋은 일이 한달간격으로 주기적으로 나타난다면 그 안좋은 일은 랜덤한 사건이 아닌 의도적일 가능성이 크므로 반드시 의심해봐야 합니다.[출처] 이항 분포(Binomial distribution) &포아송 분포(Poisson distribution)|작성자 장용희https://blog.naver.com/cj3024/221236533062

12. Part 2 문제 변형 및 설명 - 김예훈(2020****54)


1. 점 (5, -1, 10)에서 평면 x+4y+7z-6=0에 이르는 거리를 구하여라.


#코드

v = vector([5, -1, 10])

nv = vector([1, 4, 7])

d = -6


distance = abs(v.dot_product(nv) + d)/v.norm()


print(distance)


#결과

65/42*sqrt(14)


사실상 Sage에서는 점과 평면사이의 거리를 구하는 기능이 없으므로, 직접 구현해야 한다. 공식의 (aA+bB+cC)부분은 두 벡터 (a, b, c)과 (A, B, C)의 내적으로 표현될 수 있다. 그리고 d는 따로 변수를 할당한 후 내적의 값과 더해주면 된다. 또한 sqrt(a^2 + b^2 + c^2)은 벡터 (a, b, c)의 크기를 구하는 기능인 norm을 이용하여 표현될 수 있다. 이러한 것들을 조합하여, 점과 평면사이의 거리를 구할 수 있다.



2. 다음 선형연립방정식을 Gauss-Jordan 소거법으로 풀어라.


#코드

a = matrix(5, 5, [2, 1, 1 , -2, 3, -2, 1, -6, 1, 1, -1, -1, 5, -1, 2, -8, 7, 5 ,1, 2, 9, 4, -4, 5, 1])

b = vector([1, 2, 3, 4, 5])


print(a.augment(b).rref())


#결과

[       1        0        0        0        0  -604/3227]

[       0        1        0        0        0 –1328/3227]

[       0        0        1        0        0  1063/6454]

[       0        0        0        1        0  9623/6454]

[       0        0        0        0        1  9903/6454]


A라는 5X5 행렬을 만들고, B라는 벡터를 만든 후에, 이 둘을 첨가하였다. 물론 5X6 행렬로 바로 작성하면, 이 작업을 거치기 않아도 된다. 그 후에 RREF를 이용하여 행렬을 감축시켰다. 오른쪽 끝에 있는 값이 바로 각각의 변수의 대한 해(Solution)이다.



3. 기본행 연산을 이용하여 다음 행렬의 역행렬을 구하여라.


#코드

a = random_matrix(ZZ, 4, 4)

I = identity_matrix(4)


print(a)

print(a.augment(I).rref())


#결과

[ 0 38 14 16]

[-1  0 -2  2]

[-5  1 -3  1]

[-1 -6  7 -1]


[        1         0         0         0    -2/649  199/1947  -136/649 -106/1947]

[        0         1         0         0    10/649 -346/1947    31/649 -119/1947]

[        0         0         1         0   19/1298 -134/1947    -3/649  179/1947]

[        0         0         0         1   17/1298   313/649   -71/649    42/649]


4X4 무작위 행렬을 만들고, 그것을 4X4 단위행렬과 결합(Augment)한다. 그리고 그 행렬을 RREF하면, 죄측은 단위행렬이 되고, 우측은 새로운 4X4 행렬이 나오게 된다. 이 과정은 기본행 연산을 이용하여, 단순한 방법(RREF)으로 역행렬을 구하는 방법이다.



4. 다음 행렬식을 (a) 먼저 손으로 구하고, (b) 문제를 변형하여 새로운 문제를 만든 후, 그 문제에 대하여 Sage로도 구하시오.


#코드

a = random_matrix(ZZ, 4, 4)


print(a)

print(a.determinant())


#결과

[ 3  1  8  1]

[-1 -1 -1 -4]

[11 -1 -1  1]

[-1 -1  5 -1]

528


행렬의 크기가 커지면 커질수록 행렬의 행렬식을 구하는 것은 어려워진다. 왜냐하면, 계산해야할 부분이 많아지기 때문이다. 행렬을 간단한 형태로 변형하여 행렬식을 구하는 방법과 Cofactor Expansion을 이용하여 구하는 방법이 있는데, 위에서 무작위로 배정된 행렬을 구하기 위해, 두 방법을 동시에 사용하였다. 먼저 행렬을 규칙에 따라 감축시킨 후, 0이 많은 행 또는 열을 따라 Cofactor Expansion을 적용하였다. Sage에서는 이와 같은 과정이 A.determinant()로 한번에 끝난다.



5. 교재에서 3차 행렬 의 고유값을 구한 방법과 같은 방법으로, 각자가 만든 새로운 5차 행렬의 5개의 고유값 (중근포함)과 고유벡터를 구하라.


#코드

a = random_matrix(ZZ, 5, 5)


print(a)

print(a.eigenvalues())

print(a.eigenvectors_right())


#결과

[ -1   1  -1  18   0]

[  1  -1  -3   1   0]

[ -3  -3  10 -30   2]

[ -6  11   1   0   6]

[  0  -1  21  -1   0]


[-6.260606413880177?, -2.525311568535656? - 2.452038151119392?*I, -2.525311568535656? + 2.452038151119392?*I, 9.65561477547575? - 11.84032096063191?*I, 9.65561477547575? + 11.84032096063191?*I]

[(-6.260606413880177?, [(1, -0.5853550937974717?, -0.7943973776413986?, -0.3038693720957836?, 2.522618324889699?)], 1), (-2.525311568535656? - 2.452038151119392?*I, [(1, -0.3592848494391023? + 0.5506071863800691?*I, -0.3270261826547048? - 0.0706232637850957?*I, -0.08294738343062546? - 0.1707371445158087?*I, 1.678328920212667? - 0.8919168585772876?*I)], 1), (-2.525311568535656? + 2.452038151119392?*I, [(1, -0.3592848494391023? - 0.5506071863800691?*I, -0.3270261826547048? + 0.0706232637850957?*I, -0.08294738343062546? + 0.1707371445158087?*I, 1.678328920212667? + 0.8919168585772876?*I)], 1), (9.65561477547575? - 11.84032096063191?*I, [(1, 0.05129474580674115? + 0.4175459081136611?*I, -1.324978549352723? - 1.536063859633150?*I, 0.5155189711286822? - 0.7663294849099289?*I, 0.4441336462029072? - 2.760038917742413?*I)], 1), (9.65561477547575? + 11.84032096063191?*I, [(1, 0.05129474580674115? - 0.4175459081136611?*I, -1.324978549352723? + 1.536063859633150?*I, 0.5155189711286822? + 0.7663294849099289?*I, 0.4441336462029072? + 2.760038917742413?*I)], 1)]


무작위로 5X5 행렬을 만든 후, 그 행렬의 고유값을 A.eigenvalues()로, 고유벡터를 A.eigenvectors_right()로 각각 구하였다. 값들을 보면 ‘I’라는 기호가 나오는데, 이는 허수를 의미한다. 5차 특성다항식을 풀면서 발생할 수 있는 값이다. 그렇기에 행렬은 실수계가 아닌 복소수계에 있는 것이다.



이상구(LEE SANGGU)5월 24일 오후 10:17

다른 학생이 이미 한문제는 21세기 지금 .... 같은 일 반복 하기보다. 아래 그 학생이

공유한 것 에 가서.


Revise 또는 코멘트 달고 Finalize or Re-Finalize 하시기를 권합니다.



□ 4월 설명(소감)

 이번 미분적분학을 배우면서 사실 모르는 개념은 거의 후반부에나 있었지만, 다시 배우는 개념들도 헷갈리기는 매한가지였다.

 QnA 덕분에 애매했던 개념들은 확실하게 할 수 있었고, 몰랐던 개념들은 제대로 이해할 수 있었다.

                                                                              

8주차부터 12주차 동안 다음 15개의 글을 작성 및 참여했습니다. 날짜는 제가 작성 혹은 참여했을 때의 날짜를 기준으로 작성하였습니다.

* 10주차에서 배운 개념들로 3문제 풀이 (9주차 5월 8일)

* TakeHomeExam3 Part2 5문제 변형해서 풀어보았습니다. (11주차 5월 20일)

* 중심극한정리(Central Limit Theorem) 에 대하여 토론하세요^^  by 이상구(LEE SANGGU) (11주차 5월 22일 - 댓글참여)

* 베이즈 정리(Bayes’ theorem) 에 대해 토론 하시오.  by 이상구(LEE SANGGU) (11주차 5월 22일 - 댓글 참여)

* 대수의 법칙(Law of large number)에 대해 토론하세요.  by 이상구(LEE SANGGU) (11주차 5월 22일 - 댓글 참여)

* [매경시평]... 혁신의 역사, 누군가가 시킨 것을 단순 이행하는 업무란 ...  by 이상구(LEE SANGGU) (11주차 5월 22일 - 댓글 참여)

* Deepo 란? Deepo is a Docker image with a full reproducible deep learning research environment.  by 이상구(LEE SANGGU) (11주차 5월 22일 - 댓글 참여)

* Chapter 3. Part 2. 확률변수 문제 풀이  by 조윤근(2016****14)(12주차 5월 26일 - 댓글 참여)

* for t in range (0,2)? by 신재열(2013****84) (12주차 5월 26일 - 댓글 참여)

* TakeHomeExam3 Part6 3문제 변형해서 풀어보았습니다. (12주차 5월 28일)

* A 받으려는 학생과 F 면하려는 학생들은 이번 주 정말 열심히 Makeup 하셔야 합니다^^ 어제 STRONG KOREA 2020 동영상 (4시간) by 이상구(LEE SANGGU)       (12주차 5월 29일 - 댓글 참여)

* [New] 최소제곱문제(least squares problem) : 최소제곱해, 선형회귀, 최소제곱직선 by 이상구(LEE SANGGU)         (12주차 5월 29일 - 댓글 참여)

* [New] 경사하강법(Gradient Descent Algorithm) by 이상구(LEE SANGGU)     (12주차 5월 29일 - 댓글 참여)

* [New] 주성분 분석(Principal Component Analysis) by 이상구(LEE SANGGU)  (12주차 5월 29일 - 댓글 참여)

* [New] Math4AI 인공지능 (고등학교) 수학 - Tools by 이상구(LEE SANGGU)  (12주차 5월 29일 - 댓글 참여)




이상구(LEE SANGGU)5월 9일 오후 10:33

Very good

이상구(LEE SANGGU)5월 11일 오후 12:06

지금부터 14주차까지 (1) 질문 제일 많이 하는 학생, (2) 답변 제일 많이 하는 학생 중 일부는 (질문과 답변의 질을 일부 고려하여) 모두 A 주려고 합니다. Try^^


민재필(2015****15)5월 22일 오전 11:27

law of large number 와 비슷한 개념입니다. 어떤 무작위 변수가 있을 떄 그 변수의 수가 많아지면 정규분포를 따릅니다. 이는 정규분포를 따르지 않는 변수의 null hypothesis 를 test 할때 유용하게 쓸 수 있습니다. sample size 가 크면 t table 의 값이 없을 때 대신 z test 를 사용할 수 있습니다. 계산도 간편해지는 측면이 있습니다. 보통 n=30이면 central limit theorem을 쓸 수 있다고 알고 있습니다.

황인성(2019****19)5월 22일 오후 5:53

실제로 이 중심극한정리를 사용하는 예시들은 정규분포를 사용하는 모든 통계들이지만, 그중에서도 대표적인 것은 방송사에서 하는 여론조사라고 생각합니다. 모집단의 분포가 정규분포에 가까울수록 방송사들의 여론조사에 대한 분석의 신뢰도가 상승할 것이기에 중심극한정리가 중요하게 여겨질 것입니다.

조완제(2016****76)5월 25일 오후 11:35

중심극한정리는 여러가지 장점이 있습니다. 우선 샘플수가 적어도 모집단의 평균을 거의 정확하게 알 수 있습니다. 또 마찬가지로 분산도 거의 정확하게 알 수 있습니다. 그리고 모든 데이터를 정규분포로 만들 수 있습니다. 그래서 정규분포를 가정하는 통계적 기법을 적용시킬 수 있습니다.



김승한(2012****19)5월 17일 오후 10:22

ai(i=1,2,,,n)가 s의 분할로 이루어진 집합이라는 점이 ai(i=1,2,,,n) 끼리 서로 배반사건의 의미로 받아집니다. 그것을 이용해 조건부확률의 공식을 사용하여 확장한 정리가 베이즈 정리라 생각듭니다.

예제와 같이 확률의 합이 100%가 나올때만 사용이 가능한 정리인 것으로 보입니다.

이상구(LEE SANGGU)5월 18일 오후 1:15

그래서 제일 먼저 수학적으로 ... partition (분할) 이 존재하는 집합인지 아닌지 확인하는 것 ... 이 중요하답니다.

민재필(2015****15)5월 22일 오전 11:36

인공지능의 설계에 있어서 베이즈 정리는 유용하게 사용됩니다. 인공지능에서 휴리스틱을 사용할 때 그 전에 학습했던 것을 기반으로 decision tree를 생성하는데 이는 베이즈 정리와 매우 유사하다고 생각됩니다.

황인성(2019****19)5월 22일 오후 5:59

인공지능이 베이즈 정리를 사용하는 것은 사전 확률 체계의 업데이트를 위한 것입니다. 새로운 정보를 계속해서 학습하면서, 여려 경우의 확률들을 조합해 판단을 위한 전체적인 기준을 확립하는 데 이용되는 원리라고 생각합니다.

조완제(2016****76)5월 25일 오후 11:24

베이즈정리는 머신러닝에 있어서 매우 중요합니다. 특히 나이브베이즈라는 머신러닝 기법은 베이즈정리를 중점적으로 이용한 기법입니다. 나이브베이즈를 이용해 스팸메일을 구별하는 용도로 사용합니다.

신재열(2013****84)5월 26일 오후 5:07

"B에 대한 확률 분의 A_i와 B의 교집합의 확률이 B가 일어났을 때 A가 일어날 조건부 확률이다." 이게 베이즈 정리라고 보면 되는거죠?


김승한(2012****19)5월 17일 오후 10:29

당연하다고 생각드는 부분이지만 반대로 생각해 보았을 땐 n이 한없이 커질때 통계적 확률 P(A)가 수학적 확률 a에 가까워 지지 않는다면 수학적 확률이 의미를 잃는다고 생각합니다.

이상구(LEE SANGGU)5월 18일 오후 1:14

그래서 정확한 수학적 확률을 아는 것이 제일 중요하답니다^^

민재필(2015****15)5월 18일 오후 6:01

어떤 사건에 대해서 정확한 확률을 알고 있다면 그 사건에 대해 입장을 취할 때 여러번 반복하면 특정 값에 도달한다는 개념을 알고 있다면 학문적 분야 뿐만 아니라 일상 생활에서도 많은 도움이 되는 것 같습니다. 특히 카지노가 대수의 법칙의 예라고 할 수 있습니다. 카지노 입장에서는 고객의 play가 오랜기간 지속되면 무조건 카지노가 돈을 따게 되어있는데,

이는 카지노에서 하는 게임이 승률에서 약간이나마 카지노에게 유리하게 설정되어 있기 때문입니다.


예를 들어 룰렛이라는 게임이 카지노에게 게임 당 2% 더 유리하게 되어있다 한다면, 이 게임을 사람들이 많이 할 수록 카지노는 ... 궁극적으로는 total game money 판돈의 2% 정도의 돈을 벌게 되어있습니다. 또한 도박을 하는 사람들은 이 게임을 많이 하면 할 수록 ... 적어도 total game money 판돈의 2% 정도는 돈을 잃게 되어있습니다. (이것이 원래 가지고 간 돈의 2% 가 아니라. total game money 판돈의 2% 이라 매우 큰 액수 일 수 있습니다.)

조완제(2016****76)5월 20일 오후 9:34

찾아보니까 보험사도 대수의 법칙을 적용해서 돈을 번다고 되어있습니다. 간단하게 사망에 관해서만 본다면 사람의 성별, 나이대별 사망율을 계산해서 보험금의 총액을 계산할 수 있고 보험가입자로 부터 받게되는 보험료의 총액과 비교해 그것을 이용해서 돈을 벌어들입니다.

황인성(2019****19)5월 22일 오후 5:35

하지만 대수의 법칙을 실제 실생활에 이용하는 것은 조심해야 한다고 생각합니다. 앞서 예시로 나온 보험사와 카지노 같은 경우에는 실제로 무수히 많은 고객들이 오기에 그만큼 시행횟수가 기하급수적으로 증가해 대수의 법칙을 이용할 수 있겠지만, 가위바위보같이 그리 많은 시행 횟수를 거칠 일이 없는 일의 경우에는 함부로 대수의 법칙을 적용할 수 없다고 생각합니다.

'초심자의 행운'이라는 말이 있듯이, 시행 횟수가 크지 않을 때는 실제 확률과 통계적 확률이 크게 다를 수 있다는 것을 명심해야 할 것입니다.

신재열(2013****84)5월 26일 오후 5:10

흥미로운 점은, 각각 n개의 시행이 독립이라면, n이 무수히 커졌을 때 전체 시행의 결과가 수학적 확률 분포에 근사하지만 다음 시행을 전혀 예측해줄 수 없다는 점이라고 봅니다.


황인성(2019****19)5월 22일 오후 6:28

좋은 시평 소개해주셔서 감사합니다!

덕분에 인턴 경험이 얼마나 중요한 것인지 알 수 있었습니다.

김용훈(2019****23)5월 22일 오후 7:48

대한민국에서는 형식상으로만 충족하려는 그러한 문화(?)가 팽배해있다고 평소에 생각하고 있었는데 인턴 또한 그런 것 중의 하나라는 생각이 듭니다. 진정 의미있는 활동이 되어야 할텐데 말입니다.



13. 정규분포의 시각적 분석 – 김예훈(2020****54)



정규분포가 평균과 표준편차에 따라 변하는 형태를 시각적으로 파악하기 위해 다음과 같이 코드를 짜보았습니다. 

첫 번째는 표준편차를 1로 고정시키고, 평균에 1, 2, 3을 대입하여, 결과를 출력하였습니다.

두 번째는 평균을 0으로 고정시키고, 표준편차에 1, 2, 3을 대입하여, 결과를 출력하였습니다.

---------------------------------------------------------------------


var('x, s, m')


# N(x, y)

f(x, s, m) = 1/sqrt(2*pi)/s*e^(-(x-m)^2/2/s)


# 표준편차 고정

A = plot(f(x, 1, 1), x, (x, -2, 6), color="red")

B = plot(f(x, 1, 2), x, (x, -2, 6), color="green")

C = plot(f(x, 1, 3), x, (x, -2, 6), color="blue")


show(A + B + C)


# 평균 고정

D = plot(f(x, 1, 0), x, (x, -3, 3), color="red")

E = plot(f(x, 2, 0), x, (x, -3, 3), color="green")

F = plot(f(x, 3, 0), x, (x, -3, 3), color="blue")


show(D + E + F)


      

      ---------------------------------------------------------------------

            

결과적으로 평균은 그래프를 이동시키는 것에, 표준편차는 정규분포의 평균축에 대한 밀집도에 관여한다는 것을 알 수 있습니다.




1-6.png


2-3.png


이상구(LEE SANGGU)5월 25일 오전 7:24

Good point. 결과적으로 정규분포의 경우 평균은 그래프를 이동시키는 것에, 표준편차는 정규분포의 평균축에 대한 밀집도에 관여한다는 것을 알 수 있다.



14. [Bonus 1 점] 교재의 몇 가지 사소한 부분 <-- <--- I see. OK. E(X-μ)^2 을 E[(X-μ)^2] 로 바꾸었습니다. - 김예훈(2020****54)


교재에서 몇 가지 사소한 부분이 있어서, 올려봅니다.


    파란색  부분에서,  확률변수 X  가 아니라 확률변수 Z인 것 같습니다.  <---  확률변수 X 와  Z  모두  맞습니다. 




공분산 공식에서, E(X-μ)^2이  E((X-μ)^2)이 아닌 (E(X-μ))^2으로 해석될 여지가 있는 것 같습니다. 처음에 후자로 이해를 해서 문제를 풀던 중 답과 맞지 않아서 의아해했습니다. 계속 생각을 하다가 후에 저게 분산을 의미하는 것임을 깨달았습니다.  



<---  I see.  OK.    E(X-μ)^2  을   E[(X-μ)^2]  로 바꾸었습니다.

KakaoTalk_20200525_121818117.png 




Corr`(`X,``Y``)= rho = {E`[`(`X- mu   _{x} `)(`Y- mu   _{y} `)]} over {sqrt {E``[(`X- mu   _{x} `)  ^{2} ]` CDOT E``[(`Y- mu   _{y} `)  ^{2}} ]} = { Cov``(`X`, Y`)`} over {sqrt { V``(`X``)`` CDOT  V``(`Y``)`}


Source : http://matrix.skku.ac.kr/math4ai/part3/



이상구(LEE SANGGU)5월 25일 오전 00:22

인용했으면 출처 추가 하세요.


김예훈(2020****54)5월 25일 오전 00:23

추가했습니다.


이상구(LEE SANGGU)5월 25일 오후 12:15

공분산 공식에서, E(X-μ)^2이 E((X-μ)^2)이 아닌 (E(X-μ))^2으로 해석될 여지가 있는 것 같습니다. .....


<--- I see. OK. E(X-μ)^2 을 E[(X-μ)^2] 로 바꾸었습니다.

Corr`(`X,``Y``)= rho = {E`[`(`X- mu _{x} `)(`Y- mu _{y} `)]} over {sqrt {E``[(`X- mu _{x} `) ^{2} ]` CDOT E``[(`Y- mu _{y} `) ^{2}} ]} = { Cov``(`X`, Y`)`} over {sqrt { V``(`X``)`` CDOT V``(`Y``)`}


보너스 1점 줄께 PBL 보고서에 위의 내용 적으세요^^


15. 통계에서의 함수 용어 -  김예훈(2020****54)


*확률질량함수(Probability Mass Function, PMF)

이산확률분포를 따르는 확률변수에 대한 함수로, 불연속적인 속성으로 인해 입력값이 한정되어 있다.

대표적으로 포아송 분포, 베르누이 분포, 이항 분포가 확률질량함수를 갖는다.

 

*확률밀도함수(Probability Density Function, PDF)

연속확률분포를 따르는 확률변수에 대한 함수로, 연속적인 속성으로 인해 특정 범위에 한해서 입력값이 자유롭다.

대표적으로 정규 분포, 균등 분포, 지수 분포, 코시 분포가 확률밀도함수를 갖는다.

 

*누적분포함수(Cumulative Distribution Function, CDF)

함수 f(x)를 왼쪽 끝 값으로부터 특정 지점 x까지 적분하여 구한 함수 F(x)를 누적분포함수라고 한다.

또한 확률함수의 넓이에 대한 함수라고 표현할 수도 있다.

이 함수는 R언어에서 주로 사용하는 것으로, 특정 입력값까지의 범위를 구하는 데 사용한다.

기본적인 확률 옵션은 'lower.tail=T'으로 설정되어 있으며, 이는 위의 적분 수식을 따른다는 것이다.

만약 'lower.tail=F'로 옵션을 변경하면, 다음 수식을 사용하게 된다.




*적률생성함수(Moment Generating Function, MGF)

위의 식처럼, 자연상수 e의 xt제곱을 확률함수에 곱하여, x에 대한 무한범위 적분을 수행해서 얻은 함수를 적률생성함수라 한다.

이 함수는 자료를 분석하는 새로운 방법으로, 입력 변수가 t이며, t의 값에 따라 적률이 출력된다.




(아래 두 부분은 새롭게 알게 된 함수여서, 강조표시를 하였습니다)





*Reference


 https://en.wikipedia.org/wiki/Probability_density_function


https://en.wikipedia.org/wiki/Probability_mass_function


https://en.wikipedia.org/wiki/Cumulative_distribution_function


https://en.wikipedia.org/wiki/Moment-generating_function


이상구(LEE SANGGU)5월 25일 오전 00:21

정리한 내용이 정확한지를 확인할 근거나 인용 하였으면 출처 가 빠졌습니다.


김예훈(2020****54)5월 25일 오전 00:37

사실 퍼온게 아니라, 제가 직접 작성한 것입니다.

출처 대신에 제가 참고한 부분을 추가하겠습니다.


16. 코시 분포의 평균 – 김예훈(2020****54)


'코시 분포의 평균은 존재하지 않는다.'는 말을 실제로 증명해보기 위해, 다음과 같은 작업을 하였습니다.




1. 자료의 크기에 따른 평균의 수렴성 확인




#코드

for(n in 1:10)

{

print(sum(rcauchy(10^n, 0, 1))/(10^n))

}

(이번에는 for 문을 사용하여, 이전보다는 더 효율적으로 코드를 구성하였습니다)



#실행 결과


값이 어딘가에 수렴하는 양상을 보이지는 않는 것 같습니다.


시각적으로 보면 그래프가 수렴하는 형태가 아닌 것을 알 수 있습니다.

값을 더 크게 하면 더 정확히 알 수 있겠지만, 10^8 이후는 무리인 것 같습니다.



2. 수식을 통한 증명




기댓값(Expectation)의 정의에 따라, 다음과 같이 구해보았습니다.

(pi*(1+x^2)이 분모이고, x가 분자입니다)

전자의 식은 -infinity(음의 무한대)이고, 후자의 식은 +infinity(양의 무한대)입니다.

전자의 식과 후자의 식의 방향이 다르므로, 값은 정의될 수 없습니다.

그래서 코시 분포의 평균값은 존재할 수 없습니다.


이상구(LEE SANGGU)5월 25일 오전 00:20

Nuce try^^



17. 퍼셉트론에 대한 정리 – 김예훈(2020****54)


퍼셉트론(Perceptron)이란 가장 원시적인 인공 신경망으로, 다른 신경망의 모범이 된다고 할 수 있을 정도로 기초적인 신경망이기에, 현대의 알고리즘을 이해하기 위해서는 퍼셉트론에 대한 본질을 이해할 필요가 있다.


퍼셉트론은 동물의 신체적 메커니즘 중 하나인 신경계를 모범으로 만든 것이다.

즉, 퍼셉트론은 뉴런(Neuron)이라는 단위가 처리하는 일을 차용한 것이라고 할 수 있다. 생명과학 부분은 오랫동안 다루지를 않아서 잘 알지는 못하지만, 뉴런에서는 가지 돌기에 입력되는 전압에 따라 분극여부가 결정되어, 분극으로 인한 신호가 축삭돌기쪽으로 전달되는 것으로 알고 있다.

  이 과정은 나트륨 이온의 양과 같은 화학적 메커니즘이 복잡하게 작용하는 것으로 나타난다. 이 메커니즘이 작용하려면 특정 전압 이상을 뉴런의 가지돌기에 가해야 한다. 이러한 뉴런의 본질을 퍼셉트론이 유사하게 지니고 있다. 뉴런의 입력의 차이는 전압의 세기라면, 퍼셉트론은 입력되는 복합적인 데이터가 차이를 유발한다. 또한 뉴런의 신호 처리를 위한 화학적인 메커니즘이 퍼셉트론에 대하여 처리되는 메커니즘과 유사한 점이 있다.

   이외에도 뉴런의 출력은 신호의 전달여부(전달됨, 전달되지 않음)라고 한다면, 퍼셉트론은 0과 1의 2진적인 값을 출력한다.


퍼셉트론 내부의 메커니즘에 대하여 분석해보자.



  퍼셉트론이 입력받는 값의 유형은 다양하지만(e.g. 10 진수, HTML 색상 코드, 문자, 좌표값, 사진, 동영상 등), 사실상 이러한 값은 가장 기초적인 2진수로 표현이 된다. 각각의 데이터에 대하여, 인코딩(Encoding) 방식에 따라 고유한 2진수 값을 지닌다. 예를 들어, 문자는 UTF-8(유니코드 8), 동영상은 MPEG-4(아날로그 영상을 디지털 영상으로 저장하는 형식(Format)으로, 인코더(Encoder) 또는 코덱(Codec)이라고 부른다), 숫자는 그에 대응하는 2진수가 있다.

   일반적으로는 2진수로 된 자료는 이해를 위해 10진수로 변환하여, 메커니즘을 수학적으로 표현하며, 여기에서도 이러한 방식을 적용할 것이다.

    이러한 입력값에 대하여, 퍼셉트론은 값을 가중치(Weight)라는 개념을 도입하여 처리한다.

   선형대수학에서의 정의에 따르면, 가중치는 각각의 벡터 또는 변수에 곱해지는 값을 의미한다. 즉, [ax + by + cz = 2]에서 a, b, c가 가중치이다.

   그리고 이러한 구조를 선형적(Linear)이라고 표현한다. 이 모든 개념이 동일하게 퍼셉트론에 적용된다.

  퍼셉트론에서는 다음과 같은 선형적인 식을 메커니즘으로 지니고 있다.


         [c(1)x(1) + c(2)x(2) + c(3)x(3) + c(4)x(4) + ...  -->  0 or 1]

                 (()는 아래첨자를 의미한다)


여기서 c가 가중치이며, x가 입력값이다. 실제로 입력된 값들이 가중치에 의해 계산되면, 0과 1이 아니라 일반적인 수가 나오게 될 것이다.

  이러한 경우, 출력된 수를 두 수(0과 1)로 대응시키는 함수가 필요한데, 이러한 것을 활성화 함수(Activation Function)라고 한다. 활성화 함수의 출력은 0과 1이며, 대표적인 것으로 헤비사이드 계단 함수(Heaviside Step Function)가 있다. 이는 0보다 작을 때는 0을, 0보다 클 때는 1을 출력하는 단순한 함수이다.

  또한 헤비사이드 함수를 연속화한 함수도 존재하는데, 바로 시그모이드 함수(Sigmoid Function)이다. 이 함수의 특징은 함수가 전 구간에서 연속적이며 미분가능이라는 것이다. 시그모이드 함수의 출력값은 정확히 0이나 1을 출력하지는 않지만, 이는 1/2 초과 값은 1, 1/2 미만 값은 0으로 처리를 하면 된다. 사실 시그모이드 함수는 미분 가능한 함수이기때문에, 이로부터 유용한 정보를 얻을 수 있다. 바로 시그모이드 1계 도함수에 값을 입력하여, 값의 편향도를 구하는 것이다. 이는 0 또는 1로 주어진 값에 대한 추가적인 정보로 활용될 수 있다.






이제 입력된 값으로부터 출력값이 도출되었다. 사실상 가중치가 임의로 설정되었기 때문에, 원하는 출력값이 나오지는 않을 것이다. 이제는 가중치를 보완하는 과정을 거쳐야 한다. 가중치는 경사하강법(Gradient Descent Method)을 이용하여 보완 또는 갱신될 수 있다. 이러한 과정이 반복적(Iterative)으로 발생하면, 입력값에 대하여 원하는 출력값에 근접하게 될 것이다. 실제로 이러한 수학적 개념이 결합된 과정은 퍼셉트론이 학습을 하는 것처럼 보인다.


이제는 퍼셉트론 자체를 생각해보자. 하나의 퍼셉트론은 가장 단순한 정보(0과 1)만을 출력한다고 하였다.

 이러한 0 또는 1이라는 Bool 대수만으로 정보를 표현하기에는 무리가 있다. 그렇기에, 여러 Bool 대수가 묶여서, 복합적인 정보를 표현할 필요가 있으며, 이는 여러 개의 퍼셉트론이 군(群)을 이루는 과정으로 생각해 볼 수 있다.

  이러한 체(體)는 입력층(Input Layer), 은닉층(Hidden Layer), 출력층(Output Layer)으로 구분되며, 은닉층은 여러 퍼셉트론의 조합으로 인해 발생한 것이다.

    하나의 퍼셉트론은 입력과 출력이 있다면, 이들의 조합은 은닉층이라는 새로운 구간을 만들어 낸 것이라 할 수 있다.

    입력층의 퍼셉트론이 값을 입력받고, 정해진 가중치에 대하여 처리된 값이 출력층이 아닌 은닉층으로 전달이 되는 것이다. 그리고 은닉층에서 일어나는 복합적인 산출물이 출력층으로 전달되어 최종적인 값이 출력된다.


<사진 자료>

[1]     https://commons.wikimedia.org/wiki/File:Blausen_0657_MultipolarNeuron.png

[2]     https://commons.wikimedia.org/wiki/File:Asymptote_Heaviside_function.png

[3]     https://commons.wikimedia.org/wiki/File:Logistic-curve.svg

[4]     https://commons.wikimedia.org/wiki/File:Perceptron_example.svg


황인성(2019****19)6월 12일 오후 1:07

퍼셉트론에 대해 이해할 때 매우 도움이 되는 내용들이었습니다!


김용훈(2019****23)6월 12일 오후 1:40

교수님의 추가설명이 있으면 더 좋겠네요! 이런 좋은자료가 저에게는 많이 어렵네요 ㅠㅠ...


이상구(LEE SANGGU)6월 13일 오전 6:44

김용훈 군, 교양과목 에서는 적당한 호기심이 제일 좋습니다. ... 학습하면서 부담 갖지 마세요.

지금은 우리 교재 내용 인 Mathfor AI 을 . . . 읽으면서... 모르는 줄 물어보시면서 이해 하시면 충분합니다.

그 후 내가 해보라고 한 Math & Coding ...

내가 개발해 준 코드를 ... 김군 주위의 데이터 를 찾아서, 그것을 가지고 분석한 결과를 공유하고 토론 하는 것을

우선 하시기를 권한 것입니다. 퍼셉트론 에 대해서는 다른 강좌에서 또 배웁니다.


조완제(2016****76)6월 13일 오전 10:25

좋은 내용 감사합니다!


김용훈(2019****23)6월 14일 오전 8:43

교수님 말씀 감사합니다! 너무 부담 갖지않겠습니다!


민재필(2015****15)6월 14일 오전 11:12

좋은 자료 인것 같네요 많은 것을 배웠습니다



18. PCA를 바이오 데이터 분석에 사용하는 예 – 민재필(2015****15)


https://blog.bioturing.com/2018/06/14/principal-component-analysis-explained-simply/


바이오 업계에서 PCA를 사용하는 예를 들어서 PCA의 개념을 쉽게 설명해줍니다. PCA의 개념이 어렵게 다가온다면 이 설명을 들으면 빨리 이해할 수 있을 것 같습니다.


<내용 축소됨>

Principal component analysis explained simply

by  Linh Ngo

June 14, 2018

 pca, PCA biplot, pca explained simply, pca screeplot

As we are entering the era of Big Data, everyone and their moms seem to be talking about PCA. All the papers you read mention PCA (with lots of jargon, of course). Half of the seminars you’ve been to this month touch on PCA. Your boss/collaborators suggest trying PCA on your data.


“What is this PCA thing that keeps running into me?” You ask.


Short for principal component analysis, PCA is a way to bring out strong patterns from large and complex datasets. For example, if you measure the expression of 15 genes from 60 mice, and the data come back as a 15×60 table, how do you make sense of all that? How do you even know which mice are similar to one another, and which ones are different? How do you know which genes are responsible for such similarities or differences?


PCA might be what you need to untangle that data mess. What it does is to take the expression data of 15 genes from each mouse and smoosh them down to one single dot that represents the expression profile of that mouse. One dot for one mouse. Sixty mice, sixty dots. The result will look like this:




This plot makes it much easier to compare mice. Those with similar expression profiles will cluster together. In this plot, there are 3 clusters of mice. From here, you can trace back to find out which genes make the clusters different from one another (more on that later).


Neat! How do we go from that 15×60 table to this pretty plot?


1. Principal components capture the most variation in a dataset

Let’s not forget that what we are trying to do here, from the moment that the 15×60 table arrives and we stare at it in bewilderment, is to compare the mice. When there are too much information about them, it’s hard to do that. Let’s start with 2 genes to make things easier. Using those 2 genes as axes, we can plot their expression in 60 mice on a 2D plot, like this:




Here, each dot carries read counts of 2 genes from one mouse, and together they form a flat “cloud.” Principal component 1 (PC1) is a line that goes through the center of that cloud and describes it best. It is a line that, if you project the original dots on it, two things happen:


The total distance among the projected points is maximum. This means they can be distinguished from one another as clearly as possible. We want to compare stuff, remember? If a line blurs data points together, it won’t help.

The total distance from the original points to their corresponding projected points is minimum. This means we have a representation that is as close to the original data as possible.

In other words, the best line — our PC1 — must convey the maximum variationamong data points and contain minimum error. These two things are actually achieved at the same time, because Pythagoras said so.




2. PCA deals with the curse of dimensionality by capturing the essence of data into a few principal components.

But we have 15 genes, not just 2. The more genes you’ve got, the more axes (dimensions) there are when you plot their expression. When it gets to about the fourth gene, you probably don’t want to plot this anymore, let alone 15 genes. 15 genes equal 15 axes! The cloud of dots is no longer flat, it is 15-D now. There is no way to look at it and make any sense out of it.


This is when the magic of PCA comes in. To create PC1, a line is anchored at the center of the 15-D cloud of dots and rotate in 15 directions, all the while acting as a “mirror,” on which the original 60 dots are projected. This rotation continues until the total distance among projected points is maximum. The rotating line now describes the most variation among 60 mice, and is fit to be PC1.



Source: stats.stackexchange.com


PC2 is the second line that meets PC1, perpendicularly, at the center of the cloud, and describes the second most variation in the data. (Computers can handle all this rotation and setting up PCs in a breeze, lucky us!)


If PCA is suitable for your data, just the first 2 or 3 principal components should convey most of the information of the data already (more on this later). This is nice in several ways:


Principal components help reduce the number of dimensions down to 2 or 3, making it possible to see strong patterns.

Yet you didn’t have to throw away any genes in doing so. Principal components take all dimensions and data points into account.

Since PC1 and PC2 are perpendicular to each other, we can rotate them and make them straight. These are the axes of our pretty PCA plot.



3. Dimensions vary in the weights they have on each principal component.

Now that we have the axes, how about dots? How do we smoosh 15 genes together to create a single dot for each mouse?


The original dots (mouse gene expression) are pinned in place by their values on all axes (genes). These dots are projected on PC lines, which are trying to stay as close as possible to all the dots — that’s how they achieve the best fit. For the PC lines, this is like trying to stand still while being pulled in 15 directions at once. Some pulling forces are stronger than others; in other words, dimensions have different weights in defining each PC.




In our example, all 15 genes participate in placing mice on PCs, but they weigh in differently. After their weights are determined, finding out where they put Mouse #1 on PC1 is simple math:


(gene1 read count * gene1 weight on PC1)


+ (gene2 read count * gene2 weight on PC1)


+ …


+ (gene15 read count * gene15 weight on PC1)


= PC1 value of Mouse #1


Mouse #1 has a spot on PC2, too. To calculate it, use the same formula with weights of genes on PC2 instead of PC1.


With a value of PC1 and a value of PC2, Mouse #1 now can be graphed as a dot on the PCA plot.




This simple math can be written in a fancy formula that’s more appropriate for papers and seminars:


Let,


Mouse #i :



Eigenvector #j:



Principal component j-th of sample i:



Do this math again on all the mice, and they will each become a dot on the PCA plot.




Pretty! How do we read this?


4. How to read a PCA plot

Mice that have similar expression profiles are now clustered together. Just glancing at this plot, we can see that there are 3 clusters of mice.

If 2 clusters of mice are different based on PC1, like the blue and orange clusters in this plot, such differences are likely to be due to the genes that have heavy influences on PC1.

If 2 clusters are different based on PC2, like the red and blue clusters, then the genes that heavily influence PC2 are likely to be responsible.

Keep in mind that PCs are ranked by how much they describe the data. PC1 reveals the most variation, while PC2 reveals the second most variation. Therefore, differences among clusters along PC1 axis are actually larger than the similar-looking distances along PC2 axis.

Is this plot meaningful? Check the proportion of variance, or the diagnostic scree plot. PCA is worthy if the top 2 or 3 PCs cover most of the variation in your data. Otherwise, you should consider other dimension reduction techniques, such as t-SNE and MDS.



Proportion of variance graphs, good and bad

To sum up, principal component analysis (PCA) is a way to bring out strong patterns from large and complex datasets. The essence of the data is captured in a few principal components, which themselves convey the most variation in the dataset. PCA reduces the number of dimensions without selecting or discarding them. Instead, it constructs principal components that focus on variation and account for the varied influences of dimensions. Such influences can be traced back from the PCA plot to find out what produces the differences among clusters.


To run a PCA effortlessly, try BioVinci. This drag-and-drop software can perform any statistical analyses in just a few clicks. Check it out here: https://vinci.bioturing.com


이상구(LEE SANGGU)6월 11일 오후 3:15

우리 책에 쓰여있는 내용은 이해 하셨지요? 위의 PCA 에서 말하려는 Key Idea 는 무엇인가요? 본인의 Comment 를 한 줄 달아 주세요^^

이상구(LEE SANGGU)6월 11일 오후 6:39

https://www.nature.com/articles/nbt0308-303 에 보면 Published: March 2008

What is principal component analysis? 가 네이처 저널에서 Markus Ringnér 가 쓴


Biotechnology 에 사용되는 PCA 를 잘 설명하고 있답니다^^


volume 26, pages303–304(2008)Cite this article


8473 Accesses


615 Citations


Principal component analysis (PCA) is a mathematical algorithm that reduces the dimensionality of the data while retaining most of the variation in the data set1. It accomplishes this reduction by identifying directions, called principal components, along which the variation in the data is maximal. By using a few components, each sample can be represented by relatively few numbers instead of by values for thousands of variables. Samples can then be plotted, making it possible to visually assess similarities and differences between samples and determine whether samples can be grouped.

이상구(LEE SANGGU)6월 11일 오후 6:41

키 아이디어는


Principal component analysis (PCA) is a mathematical algorithm that reduces the dimensionality of the data while retaining most of the variation in the data set.


It accomplishes this reduction by identifying directions, called principal components, along which the variation in the data is maximal.



By using a few components, each sample can be represented by relatively few numbers instead of by values for thousands of variables.


Samples can then be plotted, making it possible to visually assess similarities and differences between samples and determine whether samples can be grouped.


입니다.


민재필(2015****15)6월 12일 오전 7:29

아직 이해가 많이 부족하지만 저 저널을 읽은 후 느낀 점은 PCA가 거의 모든 분야에서 대용량의 데이터를 정리할 떄 유용하다는 것입니다. 저널에서 사용한 쥐의 예로 보자면 쥐가 60마리가 있는데 각 쥐마다 15개의 gene에 대해서 분석한다 하면 일반적인 분석 방법으로는 이 쥐들을 분류하는 것이 불가능할 것입니다. 하지만 PCA를 이용해서 각 쥐마다 PC score를 매기고 PC score 에 따라 그 쥐들을 분류한다면 그 쥐들에 대해서 연구하는데 훨씬 수월할 것입니다.


황인성(2019****19)6월 12일 오후 3:18

PCA(주성분 분석를 이해하는 데 있어 큰 도움이 되는 글이네요.

특히 그래프와 도표 및 그림과 같은 시각자료가 많아서 더 직관적으로 이해할 수 있었습니다.


김예훈(2020****54)6월 13일 오전 1:42

완전하지는 못하지만, 주성분 분석의 원리를 이해하는 데 많은 도움이 되었습니다.

좋은 자료 감사합니다!



19. 이번 레포트에 대한 간단한 질문들 – 황인성(2019****19)


이번 6월 레포트는 3~5월 레포트에 비해 알려주신 정보가 좀 부족한 것 같아서 질문드립니다.


공지에 따르면, 이번 6월 레포트 제출 기한은 15일까지이며 선택사항인 발표 영상 제출은 18일까지 하면 되는 건가요?

이번에는 6월 레포트 양식 파일이 존재하지 않는데, 6월에 활동한 사항들을 이전에 작성했던 May 레포트에 추가한 후 그 레포트를 제출하면 되는 건가요?

레포트를 다 작성한 후에는 어디에 제출해야 되나요?


언제나 좋은 수업 감사합니다. 답변해주시면 정말 감사드립니다!


이상구(LEE SANGGU)6월 12일 오후 1:41

내가알려 준 공지는 다음과 같습니다.

1. 이번 6월 레포트 제출 기한은 18일까지이며 선택사항인 발표 영상 제출도 18일까지 하면 됩니다^^

단, A+ , B+ 를 원하는 학생은 둘 다를 15일 까지 하시기를 권합니다. (또는 12일~15일 사이에 제출하고 나에게 이대로 발표해도 되나요? 조언을 바랍니다 하고 물어 보면 내가 바로 조언을 줄것입니다. 그 후 고쳐서 그것을 발표한 동영상이 물론 완성도가 높을 것이고, 이것을 18일 까지 제출해도 됩니다)


2. 6월 레포트 양식은 여러분이 제출한 May PBL 보고서 를 업데이트하셔서 제출하시면 됩니다.

(맞습니다. 6월에 활동한 사항들을 May 레포트에 추가한 후 그 레포트를 제출하면 됩니다)


3. 레포트를 다 작성한 후에는 Final PBL -EXAM 과제함 에 제출하시면 됩니다. (아마 목록 제일 아래에 있을 것입니다.)



김승한(2012****19)6월 12일 오후 7:50

궁금했던 사항이 정리되었습니다. 감사합니다


나우주(2020****91)6월 12일 오후 7:52

좋은 정보 감사합니다.


김용훈(2019****23)6월 13일 오전 10:50

이 글 덕분에 궁금한 점들이 정확히 해결되었습니다!


김예훈(2020****54)6월 13일 오후 11:46

상세하게 설명해주셔서 감사합니다.




20. Sage 코드에서 – 신재열(2013****84)


방정식을 세우고 그 해를 구하는 Solve 명령어를 주어서 그걸 어떤 변수(A라고 하겠습니다)에 저장하면


[x==4]


와 같은 형태가 나오고 대괄호까지 A에 저장이 되더군요.


저는 해로 나온 4만 취해서 그다음 논리에 활용하고 싶은데,


이래저래 찾아보면서 A.rhs()로도 써봤는데 x==4가 아니라 대괄호까지 포함된 채 A에 저장이 되었기에 4만 추출되지 않고 오류가 납니다..


저기서 4만 추출하고 싶으면 어떻게 하면 될까요?



이상구(LEE SANGGU)5월 30일 오후 8:20

Python 아는 소프트웨어 대학 학생이 답을 주어보세요^^


김예훈(2020****54)5월 31일 오전 10:22

Solve에서 출력되는 값이 리스트라는 점을 감안하면, Index를 이용하여 아래와 같이 개별적인 값을 추출해 낼 수 있습니다.

https://sagecell.sagemath.org/ 에서

@ 코드

var('x, y')


a = solve([x + y == 4, x - y == 2], x, y)


print("해:", a, end="\n\n")


print(a[0][0].rhs())

print(a[0][1].rhs())


@ 결과

해: [

[x == 3, y == 1]

]


3

1


만약 해가 하나의 묶음이 아니라면(e.g. [[x == 1, y == 2], [x == 1, y == -2]]), len()으로 리스트의 길이를 추출하고, for문을 이용하여 연속적인 해를 추출하는 방법으로 코드를 작성하는 것이 유용합니다.


이상구(LEE SANGGU)5월 31일 오후 1:21

김예훈군, Bonus 2점 입니다. ^^



황인성(2019****19)5월 26일 오전 1:32

포아송 분포와 확률밀도함수를 잘 이용한 문제와 좋은 풀이였습니다!

Finalize해도 될 정도네요

이상구(LEE SANGGU)5월 26일 오후 5:05

그럼 Finalize 조윤근 군이 제목에 두명 이름 달아 Finalize 하면 돕니다.


이상구(LEE SANGGU)5월 26일 오전 00:33

Python range() example (0,6) 의미는

Get numbers from range 0 to 6 을 뜻합니다.

0, 1, 2, 3, 4, 5, 을 의미합니다.


Python 에서 range (0,2)은 즉 영 부터 2개수, 즉 영 부터 2 -1까지의 수 0 , 1 , 이 두 수를 range 로 의미하는 명령어 입니다.


그보다 신 군은 본인의 문제 풀이와 질문 과 함께 < 그간 밀린 ... 다른 학생들 문제풀이 및 질문과 내 글 에 ... 답을 주시는 부분을 보강하셔야 될 듯합니다^^

황인성(2019****19)5월 26일 오전 1:17

sage는 python 프로그래밍 언어를 기반으로 만든 수학전용 소프트웨어라서 그런 듯 합니다.

python 내의 range() 함수에서 range(A, B)라고 적으면 "A부터 B - 1까지" 라고 이해하면 됩니다.

아래의 링크에 더 자세한 설명이 있습니다.


https://withcoding.com/79

이상구(LEE SANGGU)5월 26일 오전 9:06

신재열 군, 다른 학생 답 확인하시고 코멘트 주어 Finalize 해 주시고, 본인 것도 Finalize with Comment 하세요^

[Final] 4월 3일 WebEx 미팅 요약 by 신@@, 이상구 교수님

작성자 : 신@@(2013****84)작성일 : 4월 3일 오후 12:10

조회수 : 11


이 수업의 운영방식, 흐름에 대해 다시금 짚어주시고 공지 등을 확인시켜 주셨습니다.

무엇보다 PBL보고서 평가방법에 대해 많은 얘기 해주셨는데,

이미지 파일 캡처보다는 수정될 수 있는 텍스트로 정리해서 올리는 것을 권장한다고 하셨고,

논의된 토의 내용을 Finalize 시킬 때는 논의된 내용들을 일목요연하게 정리해서 보고서에 올리기 좋게 한번 다시 올려서 Finalize 시키면 된다는 것으로 이해했습니다.

3월 PBL에 대해 Finalize를 정확하게 못시킨 것들이 많았고 조교님과 교수님께서 그 부분을 도와주신 것이 있는데 이번에 어느정도 시행착오를 겪었기 때문에 4월에는 좀 더 완성도 있게 Finalize를 해보려 합니다.



***


2020년 4월 3일 금요일    오전 10:39    2013313484 신@@ 님이 모두에게:네넵

2020년 4월 3일 금요일    오전 10:39    2019312019 황인성 님이 모두에게:네

2020년 4월 3일 금요일    오전 10:39    김민수 님이 모두에게:네 들립니다

2020년 4월 3일 금요일    오전 10:44    2013313484 신@@ 님이 모두에게:네넵  

2020년 4월 3일 금요일    오전 10:46    자연과학대학장이상구 님이 모두에게:Is there any international students in here now?

2020년 4월 3일 금요일    오전 10:50    2013313484 신@@ 님이 모두에게:그냥 hwp밖에 안열려있습니다

2020년 4월 3일 금요일    오전 10:50    김민수 님이 모두에게:스크린 안나오고있어요!

2020년 4월 3일 금요일    오전 10:51    2013313484 신@@ 님이 모두에게:교수님 아래한글 파일밖에 안보입니다

2020년 4월 3일 금요일    오전 10:51    2013313484 신@@ 님이 모두에게:네네

2020년 4월 3일 금요일    오전 10:51    2019312019 황인성 님이 모두에게:네

2020년 4월 3일 금요일    오전 10:53    김민수 님이 모두에게:네 됩니다

2020년 4월 3일 금요일    오전 10:53    2013313484 신@@ 님이 모두에게:네넵

2020년 4월 3일 금요일    오전 10:56    2013313484 신@@ 님이 모두에게:새 창 보입니다

2020년 4월 3일 금요일    오전 10:56    2019312019 황인성 님이 모두에게:새 창이 보입니다

2020년 4월 3일 금요일    오전 10:56    2013313484 신@@ 님이 모두에게:고급미적분학2

2020년 4월 3일 금요일    오전 10:56    2013313484 신@@ 님이 모두에게:나옵니다

2020년 4월 3일 금요일    오전 10:56    김민수 님이 모두에게:따라가고있어요

2020년 4월 3일 금요일    오전 10:57    2013313484 신@@ 님이 모두에게:네넵

2020년 4월 3일 금요일    오전 10:57    2019312019 황인성 님이 모두에게:네

2020년 4월 3일 금요일    오전 11:00    김민수 님이 모두에게:맞습니다

2020년 4월 3일 금요일    오전 11:06    2013313484 신@@ 님이 모두에게:교수님 Points Possible은 무엇인가요?

2020년 4월 3일 금요일    오전 11:07    2013313484 신@@ 님이 모두에게:네넵

2020년 4월 3일 금요일    오전 11:07    김민수 님이 모두에게:네 됩니다

2020년 4월 3일 금요일    오전 11:07    2019312019 황인성 님이 모두에게:네

2020년 4월 3일 금요일    오전 11:07    김도현_2019311004 님이 모두에게:네 이해됩니다!

2020년 4월 3일 금요일    오전 11:08    2013313484 신@@ 님이 모두에게:밑에 Tentative Score에서

2020년 4월 3일 금요일    오전 11:08    2013313484 신@@ 님이 모두에게:Points Possible

2020년 4월 3일 금요일    오전 11:08    2013313484 신@@ 님이 모두에게:아뇨 밑에

2020년 4월 3일 금요일    오전 11:08    2013313484 신@@ 님이 모두에게:학생ID 밑에

2020년 4월 3일 금요일    오전 11:09    김민수 님이 모두에게:네

2020년 4월 3일 금요일    오전 11:10    2013313484 신@@ 님이 모두에게:Ax=b

2020년 4월 3일 금요일    오전 11:10    김민수 님이 모두에게:네 됩니다!

2020년 4월 3일 금요일    오전 11:15    2013313484 신@@ 님이 모두에게:넵 좋습니다

2020년 4월 3일 금요일    오전 11:16    2013313484 신@@ 님이 모두에게:PBL에서 Gram-Schmidt에 대해 조교님이 Finalize 시킨거 제가 재정리한것처럼 하는 그런 식으로 Finalize 할 수 있다는 말씀이시죠?

2020년 4월 3일 금요일    오전 11:17    2013313484 신@@ 님이 모두에게:네넵

2020년 4월 3일 금요일    오전 11:17    김민수 님이 모두에게:네

2020년 4월 3일 금요일    오전 11:18    김민수 님이 모두에게:네 할수있습니다ㅎㅎ

2020년 4월 3일 금요일    오전 11:26    2013313484 신@@ 님이 모두에게:네넵

2020년 4월 3일 금요일    오전 11:26    2019312019 황인성 님이 모두에게:네

2020년 4월 3일 금요일    오전 11:26    김민수 님이 모두에게:네 보입니다

2020년 4월 3일 금요일    오전 11:26    2019312019 황인성 님이 모두에게:잘 보입니다

2020년 4월 3일 금요일    오전 11:26    김도현_2019311004 님이 모두에게:네 보입니다!

2020년 4월 3일 금요일    오전 11:39    2019312019 황인성 님이 모두에게:네 

2020년 4월 3일 금요일    오전 11:39    2013313484 신@@ 님이 모두에게:네 수식은 안보입니다

2020년 4월 3일 금요일    오전 11:39    2013313484 신@@ 님이 모두에게:수식편집기 안보입니다

2020년 4월 3일 금요일    오전 11:44    2013313484 신@@ 님이 모두에게:본인이 개념을 잘 이해했는지 본인 나름대로 올리고 정리하면서 확인받는 과정도 의미있는 것 같아요

2020년 4월 3일 금요일    오전 11:45    김도현_2019311004 님이 모두에게:넵 오늘 PBL보고서 쓰는 방법을 알게 되어서 잘 쓸 수 있을 것 같습니다!

2020년 4월 3일 금요일    오전 11:46    김도현_2019311004 님이 모두에게:지금 마이크가 잘 안됩니다

2020년 4월 3일 금요일    오전 11:47    김민수 님이 모두에게:잘 안되는거같아요

2020년 4월 3일 금요일    오전 11:47    2013313484 신@@ 님이 모두에게:네넵