그냥하는코딩
자가진단 문제 풀기 본문
https://blog.naver.com/boostcamp_official/222345119688
부스트캠프 AI Tech 2기 자가 진단 문항
부스트캠프 AI Tech 2기 자가 진단! Do you have a DNA of AI engineer? 지금, AI 엔지니어의 ...
blog.naver.com
<Part A. 기초수학>
1. 다음 중 틀린 것을 고르시오.
정답 : ② 벡터는 숫자를 원소로 가지는 리스트 또는 배열이다.
=> 벡터는 방향과 길이를 가지는 값이다. 리스트 또는 배열이라고 할 수 없다.
=> ① 한 벡터로부터의 상대적 위치 이동을 의미한다.

2. 다음 중 곱셈이 불가능한 경우는?
=> 행렬 곱은 A*B 의 경우 A의 열의 갯수와 B의 행의 갯수가 일치하여야한다.
ex) A(n*m) 이면 B(m*k)
정답 : ③
3. 다음의 조건을 만족하는 행렬 C의 차원 (dimension) 은?

=> A(128*256), B(13*128)
=> C = BA => (13 * 128) x (128 * 256) => (13 * 256) 차원이 된다.
4. 다음을 계산한 것으로 적절한 것은?

=> 위 식은 자연상수의 정의식이다.

정답 : ① e
<Part B. 기초 프로그래밍>
5. 다음 코드에서 time_complexity 함수의 파라미터 N에 대한 시간복잡도는 무엇일까요?
def time_complexity(N = int()):
for i in range(300):
for num in range(n):
for index in range(n):
print(index)
=> for 문 순서대로 300 x N x N 이 되어 O(300N^2) 가 된다.
정답 : ④
=> ② Big O 표기법의 경우 매우 커질시 상수는 무시할 수 있으므로 O(N^2)가 정답
6. 다음 코드의 출력 값으로 올바른 것은 무엇인가요?
def counting(num = int()):
cnt = 0
while True:
if (num % 5) == 0:
cnt = cnt + (num / 5)
break
num = num - 3
cnt += 1
if num <= 0:
break
return cnt
answer = counting(21)
print(answer)
=> counting(21)
=> num = 21 - 3 = 18 // cnt = 1
=> num = 18 - 3 = 15 // cnt = 2
=> num % 5 == 0
=> cnt = 2 + (15 / 5) = 2 + 3 = 5
정답 : ②
7. 다음 코드를 실행 했을 경우 나오는 오류의 종류는?
def input_string(num = int()):
num = num + 1
return num
print(input_string(str(49324)))
=> 위 정의된 함수 input_string 은 매개변수 int형 자료 num 을 받는다. 하단의 print(input_string(str(49324))) 에서 str(49324) String 자료형을 변수로 보내 TypeError 라 발생할 것이다.
정답 : ④
<Part C. 기계 학습>
8. 학습 데이터셋의 총 샘플 수가 25,000개이고 1epoch를 돌기 위한 총 learning step의 수가 500이 되기 위한 batch size는?
=> 용어를 잘 모르겠다. 직관적으로 볼 때 25,000개의 데이터를 500번에 학습시키려면 한번당 몇 size가 되어야하는가로 보여서 25,000 = 500 x 50
=> Learning step은 하나의 batch를 모델의 입력 데이터로 넣어서 모델 매개변수를 한 번 업데이트 하는 것을 말한다.
따라서 500번의 learning step 동안에 총 샘플 수를 학습하기 위해서는 25000/500 으로 batch size를 설정.
=> total sample = learning step x batch size
9. 다음중 손실 함수에서 극소값의 위치를 구하기 위해 사용하는 방법을 고르시오.
① 오일러급수 ② 경사하강법 ③ 경사상승법 ④ SVM
=> 용어를 잘 모르겠다. 극소값을 구하는 것이므로 아래로 수렴하는 느낌의 경사 하강법이 아닐까 싶다.
=> 경사 하강법(Gradient Descent)은 Cost함수(손실함수) 에서 극소값을 구하기 위해 사용하는 방법이다.
10. 아래 그래프를 나타내는 활성화 함수는?
① ReLU ② Maxout ③ Dropout ④ Sigmoid

=> 용어를 잘 모르겠다.
=> 위 그래프는 Sigmoid 함수의 그래프이다 각 그래프 모양은 아래를 참고하자

=> dropout은 데이터 학습시에 임의의 뉴런을 제외하고 학습시키는 기법이다.
문제를 풀어보니 수학과 프로그래밍은 기본적인 부분에 대한 복습하면 될 것같고 기계학습 학문의 용어나 개념을 이해하는 것이 시급하다고 생각된다. 기계학습 부분은 학습 후 다시 풀어보도록 하자.
2021/05/26
학습한 내용을 바탕으로 문제를 다시 풀고, 해설을 보며 복습하는 시간을 가질 수 있었다.
벡터나 Big O 표기법의 경우 구하는 방법은 알고 있었지만, 명확하게 알지 못했던 것 같다. 수학과 알고리즘 부분에 대한 정리 복습도 필요할 것으로 보인다.
https://blog.naver.com/boostcamp_official/222366350433
자가 진단 테스트 문제를 해설해드립니다!
부스트캠프 AI Tech 2기에 지원하기 전 스스로의 문제 해결 능력을 판단할 수 있도록 준비한 자가 진단 ...
blog.naver.com
'부스트캠프 준비기' 카테고리의 다른 글
| [AI Tech Pre-course] 인공지능(AI) 기초 다지기 - 2 (0) | 2021.06.04 |
|---|---|
| [AI Tech Pre-course] 인공지능(AI) 기초 다지기 (0) | 2021.05.28 |
| 자가진단 문제 풀기 2 (0) | 2021.05.26 |
| 모두의 딥러닝 한바퀴 돌리기 (0) | 2021.05.16 |
| 부스트 캠프 AI Tech 2기 (0) | 2021.05.15 |