오늘부터 인공지능 수업을 듣는다. 그 수업 내용 중 중요하거나 이해가 부족한 내용을 정리하고자 한다. 강의에 해를 끼치지 않는 정도로 정리를 할 것이다.
1일차이기에 기본적인 인공지능의 개념과 NumPy 모듈에 대해 복습하는 시간을 가졌다.
-인공지능의 개념
: 초기에 인공지능은 if-else 문으로 hard-coding을 하여 만들었다. 하지만 한계가 있다. 그래서 머신러닝이 나왔다. 머신러닝에는 Logistic, Regression, SVM, Neural Network 등이 있다. 여기서 Neural Network가 딥러닝이다. 머신러닝이 딥러닝을 포함하고 있는것이다. 포함관계는 인공지능 > 머신러닝 > 딥러닝이다. 원래 Logictic이 딥러닝인 줄 알고 있었는데 아니었다. 네트워크를 가지고 있어야 하나보다. 머신러닝은 수학적 모델이다.
이 강의에서는 머신러닝을 배우는데 scikik-learn을 사용할 것이다. 왜냐하면 하나하나 세부적으로 구현하기에는 시간이 부족하기 때문이다.
-강의 순서
06/21 ~ 06/25 : 머신 러닝
06/28 ~ 07/02 : 신경망과 딥러닝
07/05 ~ 07/09 : 시각인지 딥러닝
07/12 ~ 07/16 : 자연어처리 딥러닝
-실습환경
Anaconda
: 나는 기존에 이 기관에서 주관하는 기초 수업을 듣지 않아 파이참을 사용하였다. 파이참 최고!
-기타
: 강의에 나오는 책은 안 사도 된다. 나중에 다른 책 추천해 줄 것이다. 책이 많이 나오기에 살거면 최근에 나온 책을 사라.
에러는 캡쳐해서 파일로 보내라.
출석체크는 <모두>로 설정해서 보내라.
-NumPy 배열이란
: 음....그림을 쉽게 그리고 추가할 수 없어서 아쉬울 따름이다. 그래도 복습은 꾸준히 해야겠지.
배열에는 차원이(디멘션) 있다. 1차원은 백터, 2차원은 행렬(행과 열), 3차원은 행렬을 겹쳐놓은 것, n차원까지.
차원과 모양(shape)는 다른 개념이다. 머리속에 차원이랑 햇갈리는 개념이 있는데 일단 차원은 1차원 2차원 3차원 같은 것을 말한다고 생각하자.
-NumPy 에서 데이터를 어떻게 저장할까?
: 메모리에 연속적으로 저장한다. 이차원일 때도 연속적으로 저장하는한다. 반씩 떼어서.
동일한 자료형만 저장이 가능하다. 연산할 때는 벡터화해서 연산한다. 연속적으로 저장하기에 파이썬의 리스트보다 빠르다.
-자료 유형
: np.uint8, np.int64, np.float32, np.float64
np.float64 같은 경우 64비트로 저장되어 있는 실수형 자료라고 이해하면 된다. 다른 것도 똑같이 해석.
-각종 함수
중요한 부분이다. 하나씩 실행해본 다음에 추가할 것이다. 일단 중지.
np.arange(array + range)
np.reshape
astype
내적 dot
슬라이싱
병합 - np.vstack, np.hstack
브로드캐스팅 연산
필터
ndim - 대괄호 수로 차원 확인 가능
shape - 튜플 형태로 반환
이쪽 방향으로 늘어난다. <- (3, 2(행), 3(열))
ex) (1, 1, 1, 1, 1, 3, 2, 3)
len - 길이 확인, 단순하게 전체 원소의 수를 알려주는 것이 아니다.
-실습한 것 복습
https://colab.research.google.com/drive/1w4hLZaBU9-bZ5049tcIAtuV_tQQvalR_
Google Colaboratory Notebook
Run, share, and edit Python notebooks
colab.research.google.com
나만 볼 수 있나...? 어차피 남 보여줄 목적의 글이 아니고 퀄리티가 낮기 때문에 상관 없겠지.
-슬라이스 복습
: 딥러닝을 배우다보면 슬라이스가 많이 나온다. 예전에 몰라도 그냥 넘어가서 나중에 큰코다친적 있다. 그래서 이번에 강의를 하나 찾아 듣고 제대로 복습했다.
https://github.com/rougier/numpy-100
rougier/numpy-100
100 numpy exercises (with solutions). Contribute to rougier/numpy-100 development by creating an account on GitHub.
github.com
이 문제의 15번이다.
15. Create a 2d array with 1 on the border and 0 indide
15. 행렬을 만드시오. 테두리가 1이고 속이 0인.
a = np.ones((10,10))
a[1:-1, 1:-1] = 0
print(a)
이렇게 나온다. 1번째 원소부터 끝까지(-1)이다. ones는 원소가 모두 1인 원소인 듯.
[::] 이렇게 :가 두 개 있으면 처음값:끝값:간격 이다. 원하는 자리의 원소를 뽑아올 수 있다. 짝수라던가 홀수라던가.
압축할 때 사용.
: 이처럼 아무것도 주지 않으면 처음부터 끝까지라는 뜻
-느낀점
: 강사 분이 좋다. 이전 수업에도 엄청난 강사 분을 만났는데 이번에도 그렇다. 배울 운이 좋나 보다. 저번에는 복습을 안해서 좋은 기회를 날려버렸으니 이번에는 그러지 말아야겠다. 내 목표는 캐글 문제 풀 정도로 실력이 상승하는 것! 그리고 딥러닝 이해!
강수 분이 질문하는 것에 간략하고 효율적인 답을 내놓는 것도 중요하지만 그 개념을 확실이 이해한 답을 내놓는 것이 더 중효한 것 같다. 처음부터 잘 하는 사람은 없으니 틀린 답도 오케이!
'AI Hulnno Academy' 카테고리의 다른 글
06.30.(수) -8일차 정리 (0) | 2021.07.01 |
---|---|
06.29.(월) -7일차 정리 (0) | 2021.06.29 |
4, 5, 6일 차 정리가 어디갔냐고!? (0) | 2021.06.29 |
06.23.(수) -3일차 (0) | 2021.06.23 |
06.22. 2일차 복습 (0) | 2021.06.22 |