본문 바로가기

분류 전체보기184

STAR-MOOC으로 공부하기 MOOC는 온라인 공개 수업(Massive Open Online Course)의 약자이다. 보통 우리말로 무크라고 부른다. 무크는 여러 대학이나 기업의 강의들을 인터넷으로 제공하는 온라인 공개 수업이다. 온라인으로 강의를 들어 공부를 할 수 있으며 인터넷 강의인 만큼 시간을 자율 조절해서 공부를 할 수 있게 해준다. 해외 유명한 MOOC 사이트로는 Cousera, Udacity 등등이 존재하고 한국 사이트로는 KOCW가 존재한다. 이번에 소개해 줄 MOOC는 과학기술 분야를 전문으로 하는 공개강좌로 과학기술 특성화 6개 대학의 교수님들께서 직접 특정 분야에 대해 강의를 해주는 STAR-MOOC 이다. (KAIST, POSTECH, DGIST, GIST, UNIST, UST) https://www.star.. 2020. 3. 1.
Deep photo style transfer Deep photo style transfer Feature map을 이용하여 원본 이미지에 원하는 style을 적용시켜 새로운 이미지를 생성하는 방법 Content generation 이미지에 대한 convolution layer를 수행하면서 생성한 feature map을 통해 image(content)를 복원시키는 작업을 말한다. 깊은 convolution layer 일수록 많은 정보를 잃어버리기 때문에 image를 복원시키는 것이 어렵고 얕은 layer에서는 기존 이미지와 비슷하게 복원이 가능하다. Style generation Feature map을 통해서 비슷한 style을 가지는 image를 생성해내는 작업을 말한다. Gram matrix (Auto-correlation matrix)을 사용하.. 2019. 7. 18.
Single Image Super-Resolution with Convolutional layers Single Image Super-Resolution with Convolutional layers SRCNN SRCNN은 convolutional layers를 이용하여 super resolution을 진행하는 매우 단순한 모델이지만 처음으로 super-resolution 분야에 convolutional layer를 사용한 모델이다. 3개의 layer를 가지고 있으며 feature extraction과 mapping, reconstruction으로 나뉘게 된다. Patch extraction은 보통 우리가 알고 있는 convolutional layer를 적용시킨 부분으로 feature를 뽑아내는 과정이고, Non-linear mapping은 1X1 convolution을 적용시키는 과정, 마지막으로 r.. 2019. 7. 10.
Autoencoder & Generative adversarial network Autoencoder & Generative adversarial network Neural network가 이미지를 만들 수 있다면, classification을 하는 것은 자연스럽게 따라오는 일이다. Unsupervised learning은 label을 가지고 있지 않는 데이터를 학습하는 모델로 데이터의 특징을 모델이 직접 추출하여 판단하는 것을 말한다. Unsupervised learning에서 이미지를 만드는 모델로 대표적인 것이 autoencoder model과 GAN 모델이다. Autoencoder 모델은 이미지를 생성하기 위해 input과 똑같은 이미지를 label로 하여 network를 학습시키는 모델이다. Encoder부분과 Decoder 부분으로 나뉘어져 있으며 가운데 bottlenec.. 2019. 7. 8.
웹 크롤링 with Python 4장 웹 크롤링 with Python 4장 웹 크롤링을 통해 자연어를 읽고 쓰는 기능을 수행할 수 있다. 이는 웹 크롤링 파트에서 데이터를 분석하는 부분에 속한다고 볼 수 있다. 웹에서 자연어로 구성된 데이터를 가지고 와서 이를 우리가 원하는 결과물로 바꾸어주는 과정을 의미한다. 또한 일반적으로 구글이나 네이버와 같은 검색 엔진을 통해 우리가 원하는 정보를 찾는데 이런 과정이 어떻게 진행하는지에 대해서도 알 수 있게 된다. 검색창에 자연어를 입력하였는데 어떻게 해서 우리가 원하는 결과물로 잘 도달할 수 있는지가 바로 웹 크롤링의 과정에 속하게 된다. 우선 웹 상에 있는 자연어 데이터에는 불필요한 정보들이 매우 많다. 우리는 이러한 정보를 정리하고 필요한 정보만을 추출할 필요가 있다. 그래서 n-그램의 방법과 .. 2017. 7. 13.
C++ 프로그램 디자인 C++ 프로그램 디자인 코딩에 들어가기 전에 디자인 내용을 형식화하면 각 부분을 어떻게 연결할지 결정하는 데 도움을 준다. 비슷한 부분이 많은 코드를 하나로 묶어서 코드가 지저분해 지는 것을 막을 수도 있게 된다. 또한 다른 시스템과 연동을 할 때에도 이를 염두 해 두고 코드를 짜는 것과 코드를 우선적으로 짜고 나서 연동할 때에는 크게 차이가 발생하게 된다. C++ 언어는 너무나 많은 기능이 들어가 있다. 객체, 연산자 오버로딩, 예외 처리, 템플릿 등등 여러 다른 기능이 공존하고 있어 디자인 작업을 하는데 어려움을 겪는다. 또한 공용 코드와 재사용 코드를 설계할 수 있는 많은 기능이 있어 디자인을 하는데 신경을 많이 써야한다. C++ 언어에서 근간이 되는 디자인 원칙은 추상화와 재사용이다. 추상화는 내.. 2017. 7. 13.
C++ 문자열 & 코딩 스타일 C++ 문자열 & 코딩 스타일 문자열은 프로그램을 작성할 때 거의 항상 사용된다. C++은 안전하고 사용하기 쉬운 string 클래스를 제공한다. 문자열에 대해서 크기를 자유자재로 바꾸는 것은 물론 부분적으로 추출하거나 바꿀 수 있는 여러 가지 고급 기능을 지원한다. cstring 헤더 파일을 사용하면 C의 여러 문자열을 처리하는 다음의 함수들을 사용할 수 있게 된다. strcpy()는 두 개의 문자열 포인터를 받아서 첫 번째 문자열에 두 번째 문자열을 복사하는데 첫 번째 문자열이 적합한 메모리 공간을 가졌는지 신경 쓰지 않는다. strlen()은 원본 문자열의 크기를 알기 위한 함수인데 리턴하는 값은 무자열의 크기지 실제 필요한 메모리의 크기는 아니다. strcat()은 문자열을 이어 붙이는데 사용한다.. 2017. 7. 12.
웹 크롤링 with Python 3장 웹 크롤링 with Python 3장 문서 인코딩은 애프리케이션이 그 문서를 읽는 방법을 지정한다. 모든 문서는 근본적으로 0과 1로 인코딩되어 있다. 인코딩 알고리즘을 통해 문서에 대한 다양한 정보가 저장된다. 다양한 언어나 숫자에 대한 정보를 저장하고 출력하기 위해서는 UTF-8에 대한 것을 알아야한다. 원래 영어를 사용하는 입장에서는 ASCII를 사용하게 되면 인코딩을 쉽게 할 수 있었다. 하지만 다른 나라의 언어를 담고 있지는 못했다. 이에 대해 Universal Character Set Transformation Format – 8 bit로 UTF-8을 사용하여 인코딩을 하면 모든 글자를 표현할 수 있게 된다. CSV 파일을 읽는 방법은 다양하다. 원하는 파일을 직접 내려받은 후 파이썬에 그 파.. 2017. 7. 11.
웹 크롤링 with Python 2장 웹 크롤링 with Python 2장 웹 크롤러라는 이름은 웹을 크롤링하기 때문에 붙여진 이름이다. 그 핵심은 재귀이다. 웹 크롤러는 URL에서 페이지를 가져오고, 그 페이지를 검사해 다른 URL을 찾고, 다시 그 페이지를 가져오는 작업을 무한히 반복한다. 하지만 웹 크롤러를 사용할 때는 반드시 대역폭에 세심한 주의를 기울여야 하며, 타켓 서버의 부하를 줄일 방법을 강구해야 한다. API는 애플리케이션 프로그래밍 인터페이스로 서로 정보를 공유해야 하는 소프트웨어 사이에서 국제어 구실을 하도록 디자인된 인터페이스이다. API가 요청을 보낼 때는 HTTP를 통해 데이터를 요청하며 API는 이 데이터를 XML이나 JSON 형식으로 반환한다. HTTP를 통해 웹 서버에 정보를 요청하는 방법은 GET과 POST가.. 2017. 7. 11.
웹 크롤링 with Python 1장 웹 크롤링 with Python 1장 웹 브라우저는 패킷을 만들고, 보내고, 돌아온 데이터를 해석해 사진, 소리, 비디오, 텍스트 등으로 표현하는 매우 유용한 애플리케이션이다. 웹 브라우저는 코드이기 때문에 코드는 떼어내서 기본 구성 요소를 나누고, 다시 만들고, 재사용하고, 원하는 어떤 것으로든 바꿀 수 있다. 웹 크롤링은 웹 브라우저로부터 우리가 가공하고 싶은 데이터를 가져오는 과정이다. 여기에서는 가져오는 과정과 저장하는 과정, 다시 불러오는 과정 등등이 포함되어 있다. urllib 라이브러리는 파이썬의 표준 라이브러리로 웹을 통해 데이터를 요청하는 함수, 쿠키를 처리하는 함수, 심지어 헤더나 유저 에이전트 같은 메타데이터를 바꾸는 함수도 있다. urllib 라이브러리의 함수 중에서 urlopen은.. 2017. 7. 11.