본문 바로가기
딥러닝&머신러닝

인공지능 대학원, 스타트업 면접 기출 문제 준비

by David.Ho 2023. 1. 18.
728x90
반응형

1. Rank(계수)가 무엇입니까?

 

rank란 열 공간(Column space)의 차원(Dimension)

열 공간(Column space)란 행렬의 컬럼(Column)들이  Span하는 space를 의미합니다.
정리: 매트릭스의 Rank란 매트릭스의 열을 이루고 있는 벡터들로 만들 수 있는 공간(span)의 차원이다.

그리고 rank는 열 공간(Column space)의 차원(Dimension)이기도 하지만 행 공간(Row space)의 차원(Dimension)과도 똑같습니다.

  • Span :
    - 주어진 벡터들의 조합(합, 차 등)으로 만들 수 있는 가능한 모든 벡터의 집합. 즉, 공간이다.
    사용하는 벡터에 따라 모든 공간을 채울 수도, 부분적인 공간만 채울 수도 있다.
    - Linear Combination(선형 결합)으로 나타낼 수 있는 Vector space(벡터의 영역)
  • Basis는 공간을 이룰 수 있는 선형 독립 상태인 벡터들의 모음인데, span의 역개념이다.

머신러닝 (Machine Learning)에서 Rank of Matrix 의 의미

 

선형대수에서 rank의 의미는 다음과 같다.

Definition : The rank of a matrix A, denoted by rank A, is the dimension of the column space of A:

rank A = dim Col A

이는 Col A 의 dimension이 rank A 라는 것이다. (이 때 dimension은 기저백터(basis)의 갯수로 유니크하다.)

 

이러한 Rank가 Machine Learning에서 의미하는 바는 다음과 같은 예시로 나타낼 수 있다. 

다음과 같이 키 몸무게 등의 feature(column)으로 이루어진 데이터셋이 있을 때, 극단적으로 V2, V3, V4가 모두 V1에 linearly depenpent한 경우가 있을 수 있다. 이런 상황에서는 피쳐의 갯수는 많지만 rank는 줄어들게 된다.

따라서 rank는 얻을 수 있는 정보양과 관련이 있다. rank가 작으면 데이터셋에서 얻을 수 있는 정보는 줄어들게 되는데, 별 것 아닐 수 있지만 이러한 데이터셋과 피쳐는 ML 모델에 상당한 방해를 하며, 영향을 끼친다.

이 데이터 셋에 선형 회귀 모델을 만든다고 했을 때, 키의 계수에 1000을 할당하고, 몸무게에 -500을 할당하는 등 모델을 망가뜨린다고 한다. 즉 overfitting의 위험이 커진다. 이럴 때의 해결은 regularization이 있다. (또한 예시로는 선형회귀모델을 들었지만, SVM 등의 모든 머신러닝 모델 전반에서 모델을 해칠 수 있다.)

통계학과 회귀분석 과제를 하면서 종종 마주쳤던 문제인데, 이를 명확하게 설명하고 있기에 남겨놓는다.

170 34    
180 36    
150 ...    
...      
v1 v2 v3 v4

 


2. Vector Space가 무엇입니까?

 벡터 공간은 두 벡터의 덧셈과 스칼라 곱을 성립하는 벡터들의 집합입니다. 벡터 공간의 요소들은 벡터입니다.

 


 벡터 공간은 두 벡터의 덧셈과 스칼라 곱을 성립하는 벡터들의 집합입니다. 벡터 공간의 요소들은 벡터입니다.

 

 여기서, 아래와 같은 조건을 만족합니다.

 분배 법칙, 결합법칙이 눈에 띄네요. 동일한 벡터 공간내에 있는 두 벡터는 벡터 덧셈, 스칼라 곱, 분배 법칙, 결합 법칙을 성립합니다.

 


3. 역행렬을 어떻게 구하느냐?

가우스-조던 소거법을 사용하여 구할 수 있습니다.

행렬 A가 있으면 증강행렬을 만듭니다. 증강행렬이란 행렬A를 왼쪽에 놓고 Identity matrix를 오른쪽으로 놓은 것을 말하고, 이것은 가우스-조던 소거법을 통해 전개 후 왼쪽의 정사각형 행렬을 항등행렬로 만들면 오늘 쪽에 놓이는 행렬이 A의 역행렬이 됩니다.

 

[A, I] => [I | A-1]

 

  • 역행렬
    1) 임의의 (n,n) 정사각 행렬 A에 대해서 어떤 행렬 B를 곱해서 단위행렬이 되면 이 행렬이 바로 행렬 A의 역행렬 A(-1)
    2) AA(-1) = A(-1)A = I
    3) 연립방정식이 주어졌을 때 역행렬을 곱해서 X 벡터만 남길 수 있음

4. 역행렬의 시간 복잡도란?

big-O notation의 N의 3제곱이 되는 것으로 알고 있습니다.

빅오 표기법 (big-O notation) 이란?

 

 빅오 표기법은 알고리즘의 효율성을 표기해주는 표기법이다. 

쉽게 생각하면 알고리즘 스카우터라 생각하면 된다 :)

알고리즘의 효율성은 데이터 개수(n)가 주어졌을 때 덧셈, 뺄셈, 곱셈 같은 기본 연산의 횟수를 의미한다.

빅오 표기법은 보통 알고리즘의 시간 복잡도와 공간 복잡도를 나타내는데 주로 사용 된다.

(시간 복잡도는 알고리즘의 시간 효율성을 의미하고, 공간 복잡도는 알고리즘의 공간(메모리) 효율성을 의미한다.)

그런데 시간과 공간 복잡도를 나타내는 방법으로는 점근 표기법이라고 해서 

빅오(Big-O), 빅오메가(big-Ω),빅세타(big-Θ) 표기법이 있다.

 

 


5. 고유값, 고유벡터란 무엇입니까?

어떤 행렬 A와 열 벡터를 곱하는 행위를 선형 변환이라고 생각할 수 있는데 이때 선형 변환 이후에 반향이 변화하지 않는 벡터를 고유벡터(eigenvector)라고 하고 크기가 변화한 정도를 고유값(eigenvalue)라고 합니다.

 


6. PCA

PCA란 Principal Component Analysis의 준말로 우리 나라의 말로는 주성분 분석이 되겠습니다. 고차원 데이터를 저차원(차원 축소) 데이터로 축소시키는 알고리즘입니다.
주성분을 알고 있으면 차원을 축소할 수 있고 용량이 큰 데이터를 획기적으로 필요한 메모리 사이즈를 줄일 수 있기 때문에 데이터 전처리에 사용이 가능합니다. 

 


7. Normal distribution(정규분포)에 대해서 설명

종모양을 가지고 있고 중심이 평균인 분포입니다.

정규분포는 평균과 표준편차가 주어져 있을 때 엔트로피를 최대화 하는 분포이다. 정규분포곡선은 좌우 대칭이며 하나의 꼭지를 가진다.

 


8. CLT(Central limit thorem)

랜덤 샘플 여러개를 뽑아서 평균을 만들 때 표본의 갯수가 많으면 많을수록 정규분포에 가까워진다.

즉, 어떠한 분포이든 랜덤한 샘플의 갯수가 많다면 무조건 정규분포를 따릅니다.


9. 베이지안 룰

사후 확률을 구하기 위한 공식으로 사후확률을 사전확률과 우도의 곱을 가지고 표현한 식입니다.


10. List와 Dictionary

list란 순서가 있는 수정가능한 객체의 집합

dictionary란 키(key)와 값(value)으로 맵핑되어 있는 순서가없는 집합입니다.


10. 포인터

어떤 변수의 주소값을 갖는 변수를 포이터라고 부릅니다.


11. Linked List

각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다.


12. 연구방향

 

 

728x90
반응형

댓글