본문 바로가기

전체 글31

[오늘의 짬지식] 데이터프레임에서 문자열 찾을 때 Pandas 데이터프레임에서 특정 문자열 찾을 때 *** 처음부터 끝까지 모두 같은 문자열일 때 : .isin() *** 특정 문자열을 포함할 때 : .str.contains() 2021. 6. 4.
[에러해결] 다른 파일에서 모듈 불러오기 모듈을 불러올 때는 경로를 같은 위치상으로 맞춰주어야한다. import os import sys sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정 from common.util import smooth_curve from common.multi_layer_net import MultiLayerNet from common.optimizer import SGD 2021. 5. 15.
[마음가짐] 다시 잡기 요즘 뭔가 붕 뜬 기분이다. 자꾸 일을 미루게 되고 쉽게 피로를 느끼면서 늘어지게 된 것 같다. 최근 다시 마음을 잡을 필요를 무한히 느끼고 있다. 다시 마음을 잡고 시야를 넓게 갖고 실행에 하나부터 천천히 옮기도록 해야겠다. 2021. 5. 10.
세계 최초 롤러블폰 ... LG 롤러블폰 첫 공개 ! 디스플레이를 접는 폴더폰이 나오더니 이번에는 디스플레이를 말아버리는 "롤러블폰"이 나왔다. 이런 세상이 오다니,,, 과학 기술의 발전은 정말 꾸준하게 끊임없음을 또다시 느꼈다. 세계 최대 IT 전시회 ‘CES2021′ 프레스 콘퍼런스에서 LG전자는 롤러블폰을 선보였다. LG 롤러블폰 티저영상을 보고오니 마치 상소문과 같은 형태를 띄고 있어 이미 대중들 사이에서는 '상소문에디션'이라고 부르고 있다. 확실하지는 않지만 아마 올해 3월쯤에 정식 출시될 예정이라고 한다. 화면을 모두 펼치면 7.4인치이고 돌돌 말면 6.8인치이다. 지금까지는 LG가 스마트폰 시장에서 부진을 이어오고 있어 아쉬움을 남겼다. 하지만 이번 롤러블폰을 기점으로 앞으로 LG가 스마트폰 시장에서 어떠한 영향력을 발휘할지 상당히 기대가 된다.. 2021. 1. 12.
[CS231n] Lecture 9 | CNN Architectures 이번 강의에서는 대표적인 CNN Architectur에는 어떤 것들이 있는지 알아보도록 하겠다. CNN이 주목을 받기 시작하게 된 계기는 AlexNet라고 할 수 있다. 이 강의에서는 각 모델에서 필요한 Meomory와 Parameter의 수를 중점적으로 설명을 한다. AlexNet을 도식화 하면 다음과 같다. 이 논문을 2012년에 발표를 했었는데, 그 당시 컴퓨터 성능이 좋지 않아서 네트워크를 분산시켜 GPU에 넣었다. 그래서 feature map을 추출할 때 2개의 영역으로 나누어져 있다. AlexNet의 특징들은 다음과 같다. ILSVRC 우승 모델 중 다음으로 알아볼 모델은 VGG모델이다. AlexNet과 비교를 했을 때, Layer의 수가 확실히 깊어진 것을.. 2020. 12. 5.
[CS231n] Lecture 8 | Deep Learning Software 딥러닝 프레임워크에 대해서 알아보자! CPU는 central processing unit, GPU는 graphics processing unit이다. 이 둘은 어떤 차이가 있는 것일까? CPU는 컴퓨터의 뇌에 해당하는 부분이라고 생각하면 된다. 컴퓨터에서 구성 단위 중 기억, 해석, 연산, 제어부분을 수행하는 중요한 녀석이다. 좀 더 적은 core의 수로 연속적인 일을 처리하는데 CPU가 자주 쓰인다. GPU는 computer graphics를 Rendering하기 위해 쓰이는 녀석이다. 더 많은 core로 일을 병렬적으로 수행하고 싶을 때 GPU가 자주 쓰인다. GPU는 내부적으로 자체적인 RAM을 가지고 있다. 아래 표를 보면 차이점을 알 수 있다. GPU에도 여러 종류가 .. 2020. 11. 28.
[CS231n] Lecture 7 | Training Neural Networks II 지난 강의를 돌이켜보면 Neural network에서 가장 중요한 것은 바로 최적화 문제였다. vanilla gradient descent를 하게되면 위 식처럼 weight를 초기화 해준다. 여기서 batch단위로 끊어서 한게 SGD이다. 미니 배치 안에서 데이터 loss를 계산하고, 그리고 gradient의 반대 방향을 이용해서 파라미터 벡터를 업데이트 시켜준다. 그런데 SGD의 문제점이 있다. 손실함수의 모양에 따라 영향을 많이 받는다. 위 그림처럼 타원 모양을 갖게 되면 저 빨간색 점에서 스마일표시까지 어떻게 찾아가게 될까? 위의 경우 loss가 수직 방향의 가중치 변화에 훨씬 더 민감하게 반응하여서 빨간색 선처럼 gradient의 방향이 매우 크게 튀면.. 2020. 11. 28.
[CS231n] Lecture 6 | Training Neural Networks I 오늘의 학습내용이다. 우리가 network parameter를 최적화하는 방법 중 Gradient Descent Algorithm에 대해서 배웠다. 그리고 모든 data를 가지고 gradient descent Algorithm에 적용을 하면 계산량이 많기 때문에 SGD(Stochastic Gradient Descent) Algorithm을 이용한다. Sample을 뽑아내 Gradient Desscent Algorithm을 사용하는 방법이다. 처음에 모델을 어떻게 선정해야 하고, Training 할 때 유의해야할 사항은 무엇인지 평가는 어떻게 해야하는지 한 번 알아보자. Activation Function의 종류에.. 2020. 11. 28.
[CS231n] Lecture 5 | Convolutional Neural Networks 이번 강의에서는 Convolutional Neural Network(CNN)가 어떻게 작동하는지를 살펴볼 것이다. Fully Connected Layer에서 하는 일은 어떤 벡터를 가지고 연산을 하는 것이다. activation은 이 layer의 출력이다. 기존의 FC layer가 입력이미지를 쭉 펼쳤다면 이제는 기존의 이미지 구조를 그대로 유지하게 된다. 그리고 filter가 우리의 가중치가 되는 것이다. filter를 가지고 이미지 슬라이딩을 하면서 공간적으로 내적을 수행하게 된다. 여기서 깊이(depth)는 3이다. 깊이는 전체 깊이를 전부 취하지만, 32x32중 5x5만을 취한다. 필터의 각 W와 이에 해당하는 이미지의 픽셀을 곱해준다. 각 원소끼리 Convolution을 하는 것과 그것을 쭉 펴.. 2020. 11. 14.
[CS231n] Lecture 4 | Introduction to Neural Networks {지난 시간} ... score function에 대해서 SVM의 loss인 hinge loss에 대해서 softmax의 loss인 cross entropy loss에 대해서 규제(regularizaiton)에 대해서 최적화(optimization)에 대해서 경사하강법에 대해서 ... 배웠다! 일반적으로 계산하는 방법은 numerical 방법이다. 근데 이건 속도가 느리고 정확하지 않다는 단점이 있다. 그래서 우리는 해석적 방법(분석적 방법)인 analytic 방법을 많이 사용하고 보통 gradient check를 할 때 numerical gradient를 사용한다고 배웠다. 앞에서 배웠던 것을 그림으로 표현하면 이와 같이 된다. Wx가 곱해져서 들어오고 그 score 값을 function에다가 넣고 거.. 2020. 11. 14.
[CS231n] Lecture 3 | Loss Functions and Optimization 저번 강의에서 배운 것을 정리해보자. 인식에서의 어려운 점을 살펴보았고, 데이터 중심의 방식에 초점을 맞춰보았다. 그리고 이미지 분류에 대해 배웠고 왜 이미지 분류가 어려운지, 컴퓨터가 보는 것과 사람이 보는 것의 차이가 있다는 것도 배웠다. 분류를 어렵게하는 조명의 변화, 변형에 대해 다뤘고 왜 어려운지를 배웠다. 데이터 중심 접근 방법 중에서 가장 단순한 방법인 KNN 분류기에 대해서도 배웠다. 어떻게 KNN을 이용해서 학습데이터를 가지고 각 카테고리 클래스를 분류하는 결정경계선을 학습시킬 수 있는지도 배웠다. cross validation에 대해서 배웠고, train, validation, test 셋으로 나눠서 하이퍼파라미터를 찾는 법도 배웠다. 마지막으로 Linear classification에.. 2020. 10. 24.
[CS231n] Lecture 2 | Image Classification 이미지(image)는 숫자로 이루어진 3D array로 구성되어 있다. 컴퓨터는 이미지를 픽셀 값 즉, 숫자로 생각한다. 이미지가 조금만 달라져도 모든 픽셀 값은 달라진다. 그렇기에 우리가 만드는 알고리즘은 이런 상황에 대해 강인해야한다. (보는 시각의 달라짐, 조명, 형태의 변형, 은닉, 배경과 구분 안되는 상황, 클래스내의 구분 등등) 기본적인 image classifier는 이미지를 인자로 받아서 예측을 하는 것이다. 그 이미지가 어느 쪽에 속하는지 label를 반환하는 기본적인 함수를 말한다. 이미지를 구분할 때 직관적이고 명시적인 알고리즘(Hard Code)는 없다. 과거에는 이미지를 보고 특징점들을 찾아내고 edges와 corners를 계산하여 분류하려 했다. 하지만 위 접근방법에는 많은 한계.. 2020. 10. 14.
[CS231n] Lecture 1 | Introduction to Convolutional Neural Networks for Visual Recognition CS231n은 딥러닝 분야 중 Computer Vision에 대한 강의이다. 위의 그림에서 볼 수 있는 것과 같이 Computer Vision은 다양한 분야와 관련되어있다. 본격적으로 Computer Vision 강의를 시작하기에 앞서 오늘의 주제는 아래와 같다. Today's Agenda - A brief history of computer vision (CV 역사) - CS231n overview (개요) 과거 생물들에게는 눈이 존재하지 않았다. 즉, 비전이 존재하지 않았다. 그러나 매우 짧은 기간내에 동물 종의 수가 폭발했다. 그 이유를 비전(시각)에서 찾았다. 시각 발달에 의해 먹이활동이 좀 더 적극적으로 변했고 생물들은 포식자로부터 살아남아야 했다. 본격적으로 비전(시각)은 진화론적인 군비 경쟁.. 2020. 10. 10.
[교육] 파이썬을 활용한 공공데이터 분석(심화) 혹시 온라인/오프라인 모임 사이트인 '온오프믹스'를 아는가? 온오프믹스 사이트 주소는 다음과 같다. onoffmix.com/ 온오프믹스 :: 모임문화 플랫폼 onoffmix.com 본인이 관심있는 분야에 대한 여러가지 모임 공고를 볼 수 있다. 여기서 말하는 모임이라고 하면, 스터디, 세미나, 학회, 포럼, 무료 교육, 취미 모임 등등 다양한 분야에 대한 다양한 모임유형을 접할 수 있다. 개인적으로 혼자하기 힘들 거나 누군가와 같이 하기를 원한다면 상당히 도움받을 것이 많은 사이트라고 생각한다. 어느 날, 온오프믹스에서 모임 모집공고를 뒤적거리다 아래와 같은 교육을 발견하였다. "(Open UP) 공개 SW전문교육 - 빅데이터 과정 교육생 모집 (온라인)" 필자의 관심사와 굉장히 유사한 무료 온라인 교육.. 2020. 9. 12.