원래는 매일 1일 1포스트를 하고싶었지만 수업을 따라가기가 너무 힘들어서...실패! 다음주부터는 1일 1포스팅 재도전!
개요
이 수업을 듣기전 Pre course를 전부 듣고 정리를 했다.
U-stage에서 1일 1포스팅을 목표로 삼았지만 실패했다.
1주차의 시간은 비교적 자유로웠지만, 공부해야하는 양과 과제를 보면 자유가 아닌것같다.
슬기로운 부캠생활
부스트캠프에는 피어세션이라는 팀원들과 같이 소통하고 의견을 나누는 시간이 매일 존재한다.
5주동안 같이 공부할 팀원들을 처음 만나고, 인사를나눴다.
우리팀의 이름은 슬기로운 부캠생활로 정했다!
이제 1주차지만 벌써부터 도움을 많이 받았다.
나도 빨리 따라가서 도움이 되는 사람이 되고싶다.
다들 친절하시고 유쾌하신분들이여서 오프라인이였으면 정말 많이 친해질 수 있을것 같은 생각이들었다.
피어세션을 하면 할수록 한분한분 정말 대단한 사람들이라고 느껴진다.
팀원들과 이야기를 할 수록 동기부여가된다.
나는 아직 수학공식을 제대로 이해하지 못하고 직접 손으로 풀어 볼 수준이 되지 않는다.
하지만 다들 수학 공식을 손으로 풀어보려고 노력하시고, 풀어내시는 모습을 보면서 내가 얼마나 겉핥기를 하고있는지 깨닫게되었다.
우리팀의 룰
지각 2회 : 기프티콘
무단 결석 : 기프티콘
기프티콘은 카카오톡 기프티콘 랜덤하기 선물으로 1명!
다른팀들에 비해 룰이 가벼운 것 같지만 그만큼 다들 누가 시키거나 강제하지 않아도 열심히하는 대단한 분들이다.
또한 세부적인 룰은 일단 코스에 집중해보고 정하기로했다.
과제 양도모르고 난이도도 모르는 상태에서 일만 벌렸다가 뒷수습하기 힘들어질 것 같아서 매주 체크해보고 그때그때 정하기로 했다.
-> 개인적으로 아주 마음에든다... 수업도 따라가기힘든데 다음주가 벌써 걱정이다.
이번주 인상 깊었던 과제
이번주 총 5개의 필수과제와 3개의 선택과제가 있었다.
3개의 필수과제는 파이썬의 기본실력을 평가할 수 있는 문제였다.
나머지 2개는 구현해보는 문제였는데 꽤 재미있었다.
3개의 선택과제는 아직 제대로 들여다보지도 못했다... -> 주말에 꼭 확인해 볼 예정이다.
1번. 야구게임 구현: 학창시절 종이에 하던 숫자 3개맞추는 야구게임을 구현해보는 문제
- 야구게임에 필요한 각 기능들을 함수로 분리해서 여러개의 테스트케이스를 통과하고 마지막에는 구현한 함수들을 사용해서 main함수를 구현하는 문제다
outer_break = False
while(True):
random_number = str(get_not_duplicated_three_digit_number())
print("Random Number is : ", random_number)
while(True):
while(True):
user_input = input('Input guess number : ')
if user_input == '0':
outer_break = True
break
if is_validated_number(user_input) == False:
print("Wrong Input")
else:
break;
if outer_break == True:
break
이런식으로 while안에 True를 계속 때려서 구현했지만, 팀원들과의 코드리뷰시간을 통해 아래처럼 변경했다.
signal_question_loop = True
while(signal_question_loop):
if(~~~):
signal_question_loop = False
또한 테스트코드를 살펴보니까 아래와 같은 형식으로 테스트를 한다는 것을 배웠다.
self.assertEqual(True, is_yes("YES"))
self.assertTrue("WRONG INPUT" in console[i].upper())
내가 print한 콘솔을 체크해서 출력된 문자를 받아와서 비교하는 방식도 배울 수 있었다.
2번. 모스부호(Morse Code)를 번역하는 프로그램
- 데이터를 입력받고, 모스코드로 인코딩 또는 영어로 디코딩해서 return 해주는 함수를 구현하는 문제다.
- 나는 정규표현식을 아직 잘 다루지못해서 replace함수로 대체했지만 다른 분들은 re 라이브러리를 잘 활용하셨다.
- 야구게임의 코드리뷰를 바탕으로 Pythonic한 코드를 짜보고 싶어져서 생각하면서 코드를 짜봤다.
- 가끔씩 programmers에서 다른사람이 푼 해답을보면 나는 8줄짜리로 짰는데 어떤분은 1줄로 끝내는 사람들이 있었는데 우리팀에 그런분이 계신다...
def decoding_character(morse_character):
return dict((v,k) for k,v in get_morse_code_dict().items())[morse_character]
선택과제 3개
- Gradient descent 구현
- Backpropagation 구현
- MLE 수식 풀어보고 코드로구현
-> 선택과제는 꼭 주말에 풀어보진 못하더라도 이해라도 시도해볼 예정이다.
이런식의 테스트는 해보지 못했는데 좋은 경험이었다.
첫 주 학습 후기
이제 첫주가 지났다.
첫주에는 파이썬과 AI수학, 확률과 통계 기초를 배웠다.(기초가 맞나..?)
파이썬과 AI수학, 확률과 통계 강의 대부분이 Pre-Course에 있던 내용이였기 때문에 Python부분은 편하게 들을 수 있었다.
하지만 확률과 통계, 선형대수학이 아직 와닿지않는다.
이걸 어디에 써야하는지도 모르겠고, 내가 모르는 지식이 너무 많았다.
조급해하지 않고, 자주 보면서 익숙해지는 방법이 있다고 배웠다.
이번주말의 다짐
꿀팁 방출
8월 5일 목요일 저녁에 임성빈교수님께서 1시간 가량 QnA와 알아두면 좋은것들을 소개해주셨다.
아래의 것들은 같은 조원분께서 잘 정리해주신 내용이다. (감사합니다)
Tip
- Casuality 주제 data scientist에게 중요한 내용이지만 많이 다뤄지지 않는 내용. 분석에 있어 상당히 중요한 내용임
- 수학에는 이해하면 좋지만 어렵다면 익숙해지는 대안
- 용어에 대한 정의 외우기(하루3번 3일), 모르겠다면 인공지능 커뮤니티에 물어보기
- 용어 외웠다면 '예제' 찾아보기
- 각잡고 수학 처음부터 끝까지 정복하겠다 라기보다는 머리 적시기 횟수 늘리기 ⇒ 용어 익숙해지는 과정
- 처음 볼때는 익숙해지고 실제로 쓸때 깊이 있게 이해하고 사용해보는 것 추천
- AI 추천 책
- Dive into deep learning (https://d2l.ai/)
- 영어공부도 가능. 벡터와 행렬부터 공부해도 좋음, Calculus도 다룸, python 실습 ⇒ '구현능력 향상에 좋음'
- 데이터 사이언티스트를 위한 오류 및 주의사항 대해 잘 정리된 책
QnA
Q. Deep learning에서 기초란?
A. 선형대수 → 확률/통계
처음부터 끝까지 볼게아니라, 정의와 예제 언제 사용하는지 위주로 공부
Q. ML 엔지니어는 수학얼마나 잘해야할까?
A. 필요한 걸 공부해서 빠르게 따라잡을 수 있을만큼 알아야 함, 증명에 대한 부담을 느낄 필요는 없음
Q. 우수한 엔지니어란?
A. 제약적인 환경에서 문제를 빠르게 파악하고 빠르게 해결하는 능력을 갖춘 사람,
Problem solving loop
Q. 추천 시스템 공부할 때 알아야할 내용이 있을까요?
A. Dive into deep learning 16장
A. Multi-Armed Bandit (MAD) : Netflix 개발자들이 만든 영상
Q. AI 분야에서 학석박 간에 어떤 차이가 있을까요?
A.
- 분야마다 다르겠지만 전문성이 다르고 대중화 되지 않은 영역 ⇒ 학위과정이 중요
- 강화학습, 인과학습은 진입장벽과 대중화 되지않아 대학원 추천
Q. 인공지능 분야에서 대학원이 필수일까요?
A. 필수는 아니지만, 관심 가진 분야가 새로운 분야라면 대학원 추천
Q. 취업에서 대학원생과 경쟁
A.
- 기업의 관점은 전문성을 생각하게 됨 ⇒ 석사 or 박사가 더욱 전문성을 가질 수 밖에 없음. 요즘은 대학원생들이 개발력도 갖추고 오기 때문에 논문을 주고 구현해봐라 or 새로운 문제에 대한 해결 능력을 보게 됨
- 대학원에서 여러 상황을 경험하며 문제 해결능력이 쌓여서 실력적인 부분이 중요한 것이지, 석사나 박사는 중요하다고 하기 어려움, 실력 없으면 대학원 무소용 (난가)
- 어떤 교수님 랩 어느 연구분야 (전문성). 그이후 다른거 보게됨
- 전문성: 논문이나 코드 오픈소스로 제안하기 ( open되지 않는 코드들을 오픈소스로 구현하는 능력 보여주기) ex) 파이토치가 아니고 텐서플로우로 하면 더좋고
- 대학원은 그런 능력들을 공유하고 소통하고 배울 수 있는 공간이라는 점에서 장점, 대학원에서 기업에 인턴연결 (레첵에서의 장점)
Q. 수학 or 모델 line by line 구현 해보는 연습 좋을까?
A.
- 주니어 레벨
- deep learning framework에서 자주 사용하는 (e.g. GD 등)은 개념정도만 알면 충분
- 제공되지 않는 애들 or 연습해볼만한 가치가 있다 생각되는 애들 직접해보면 좋음
- 시니어 레벨
- 주니어 레벨의 질문 커버하기 위해서는 자세히 알아야 좋아
Q. 논문을 읽다 보면 모델의 구조나 학습 방법이 명확하지 않은 경우, 이런 논문을 구현함에 있어서 중요한 점??
A. 상상력 (잘하는 사람만?), 비슷한 내용의 해결방안 벤치마크
'부스트캠프 AI Tech 2기 > 2기 U-Stage' 카테고리의 다른 글
2주차 MLP (Multi-Layer Perceptron) (0) | 2021.08.09 |
---|---|
2주차 딥러닝에서 사용되는 용어 (0) | 2021.08.09 |
1주차 MLE(최대우도법) (0) | 2021.08.09 |
1주차 Gradient Descent, Stochastic gradient descent (0) | 2021.08.08 |
USTAGE - 확률론 (0) | 2021.08.06 |