데이터를 얻는 방법과 웹크롤링 기본 구조

데이터 분석 프로젝트를 하면서 난감했던 것 중 하나가 하고자 하는 프로젝트 주제에 맞는 데이터가 없을 때였다. 우연하게 활동했던 동아리에서 크롤링 관해서 강연을 하게되었는데 크롤링 말고도 데이터를 받을 수 있는 방법들에 대해 소개해주고 싶었고 크롤링에 대한 기본 구조를 다시 살펴보고 실습을 진행하였다.

Continue reading

Html,CSS정리-1

페이스북 이노베이션 랩에서 진행하는 웹 프론트엔드과정을 듣고 정리한 글입니다.

동아리에서 크롤링을 공부하다보니 html, css에 간단히 배웠는데 이번에 좋은 기회를 통해 이고잉님께 배울 수 있는 기회가 생겨 수업을 듣고 필요한 내용만 정리한 내용입니다.

자세한 사항은 이고잉님의 생활코딩을 참고해주세요!


html 태그

  • <~>으로 시작해

    </~>으로 끝난다.

u - underline

strong - 굵게

h1

  • 제목에 쓰는 태그
  • 숫자가 늘어 남에 따라 작아진다.

br

  • 줄 바꿈 하는 태그
  • 대신 닫는 태그는 없다.

list

  • 정리해서 list화 시킬 수 없을까?
  • li 태그

  • list가 두개로 나눠진다면 ul태그를 중간에 써준 것이 약속!

ol 태그

  • 리스트처럼 정리하고 싶지만 숫자를 넣고 싶다!
  • ol태그 후 li 태그

mark up language

  • 이건 list다라고 태그로 하나하나 명명해주는 언어(약속)

팀 버너스리

WEB Browser - html

WEB Server - url

htttp

웹이 웹이기 위한 태그는?

a 태그(링크)

  • a 태그는 이것이 링크다 라는 것만 알려줘

  • 속성이 필요하다!
  • href(hypertext reference)

title tag

meta

데이터를 설명 하는 데이터

  • charset
  • encoding을 맞추기 위해

head& body

메타데이터와 컨텐츠 데이터를 나누자

img

src에 unplash.com의 이미지를 활용해 홈페이지를 풍성하게


정보와 디자인을 분리

css 등장의 이유

  • html이 정보의 표현에 집중하게 한다.
  • 디자인에 최적화된 css에 집중.

css를 배운다

  1. 선택자(selector)를 배워 가는 과정 - targeting
  2. 효과(description)를 배워가는 과정

style태그로 시작 하고 끝냄

  1. li - tag 선택자 selector

    ex) li {

    ​ color : red; - 효과(description)

    ​ }

  2. id 선택자 -단하나의 id에 해당하는 것만으로 targeting 가능

    ex) #em

  3. classs 선택자 - grouping 하는 선택자

    ex) class = viewed

html 에서 말하는 elements는 태그다.

  • box model

h1태그는 전체 화면을 쓴다.

border-width : 10px; - 테두리 두께

border-style : solid; - 테두리 종류

border-color : magenta; - 테두리 색깔

border : 10px solid magenta - 합쳐서 쓸 수 있다.


이고잉님이 코딩에 대해 몇가지 말씀해주신 것

알고 있는 것도 낯설게 하는 것도 능력이다.

코드는 설계도다!

하지만 건축과 다르게 설계도를 짜면 바로 프로덕트로 나온다.

결국, 오픈소스는 제품을 주는 것!

코드한줄 써보고 확인해보고

한자써보고 확인해보자 문제의 원인을 하나씩 풀어가자

코딩을 공부할 때, 중복을 제거하는 코딩을 해보자

Continue reading

CS231n- 5강

CS231n- 5강

  • 강의를 듣고 cnn 구조에 대해 이곳 저곳에서 이해해보고 다시 구성한 글입니다.

Convolutional Neural Networks

  1. 구조

    • (Convolutional layer - Relu- Pooling) X 반복 - Fully Conneted Layer
    • 앞의 과정을 Feautre extraction이라고 한다고 한다.(참고 https://www.slideshare.net/modulabs/2-cnn-rnn)
  2. Fully connected Neural Network(FCNN)와 비교

    • 사진데이터를 FC신경망에 학습을 할 경우 3차원 사진데이터를 1차원으로 평면화 시켜야 한다

    • 사진 데이터를 평면화 시키는 과정에서 공간 정보가 손실될 수 밖에 없다.

    • CNN은 이미지의 공간 정보를 유지하면서 필터,polling layer를 통해 이미지의 특징을 추출하고 학습할 수 있다는 장점을 갖고 있다.

  3. Convolution Layer

  • 32 * 32 * 3 이미지에서 5 * 5* 3 filter 만큼의 이미지를 가져오는 것

  • filter의 depth는 원 이미지의 depth와 같아야한다

  • filter는 이미지에 차례로 돌아다니면서 이미지의 정보를 filter가 뽑아내고자하는 특성을 수집하고 그것을 모아 둔 것이 activation map

  • 필터를 여러개 사용하면 하나당 하나의 activation map을 만든다.

    • filter & stride

      밑의 예시와 같이 7 7 input에서 3 *3 filter을 적용한다고 했을 때 *filter가 얼마나 움직일지 그 크기를 stride라고 한다.

      stride가 1이라고 하면 오른쪽으로는 5번이동할 수 있고 아래로는 5번이동 할 것이다.

      따라서 output은 5 * 5가 나올 것이다.

      stirde가 2이라고 하면 오른쪽으로는 3번 아래로는 3번이동할수 있을것이다.

      따라서 output은 3 * 3이 나올 것이다.

그래서 위와 같은 공식을 얻을 수 있게 된다

N - filter을 적용할려고 하는 이미지의 한면의 길이

F - filter의 한면의 길이

stride - filter의 stepsize

  • Zero paddig

filter을 사용하다보면 output사이즈가 작아지는 경우 위와 같이 ouptut 사이즈가 줄어든다 그렇게 되면 정보의 손실이 일어나게된다.

이를 위해서 원래 이미지의 테두리에 0을 배치한다 단, 크기는 (Filter 사이즈-1)/2 크기로 만들게 된다.

F=3이라면 zero pad을 1만큼 덧붙인다.

  1. Pooling layer
  • 풀링레이어는 convolution layer의 activation map의 크기를 줄이거나 특정 데이터를 강조하는 용도로 사용(down sampling)

  • max-pooling이 대표적인 pooling 방법

  • 각 박스(filter)안에서 가장 큰 값을 선택해 가져오게 한다.
  • 가장 강한 feature만 남긴다.
  1. Fully Connected Layer
  • 마지막 fully connected layer을 통해 기존 ordinary NN처럼 결과를 낸다.
  1. Summary
  • 참고사이트

https://www.youtube.com/watch?v=bNb2fEVKeEo

https://hamait.tistory.com/535

https://www.slideshare.net/leeseungeun/cnn-vgg-72164295

Continue reading

2018년 상반기 회고

2018년 상반기 회고

  • 올해를 뒤돌아보고 내년을 준비하기 위해 이 글을 쓰게 되었습니다
  • 쓰다보니 글이 길어졌고 또, 상반기와 하반기에 너무나 다른 시간을 보냈고 특히 2학기는 휴학을 하면서 진로나 고민을 하고 있는 지점이 있어서 그 점을 자세히 적고자 이번 글에서는 올해의 상반기를 정리하는 글을 적었습니다. 다음에는 하반기와 내 진로에 대해 현재 고민했던 지점과 어떻게 이어가고 있는지를 적고자합니다.

  • 올해는 저에게는 개인적으로 기쁜 일과 슬픈 일이 많이 겹쳐 감정적으로 많이 휘둘렸던 시기였습니다. 이를 내년에는 올해를 잘 기억해서 잘대처하고자 제 개인적인 얘기도 쓰게 되었습니다.

겨울방학(1월-2월)

[학업]

  • 전역 후 고대하던 빅데이터 동아리에 들어가게 됨.

    • 군대 입대하기 전 떨어졌던 군대 말년에 공부했던 것을 바탕으로 다시 지원해서 붙게 됨 전역 하고 나서 거의 일주일 만에 이룬 거라 너무나 기뻤음!
    • 파이썬 기초/통계학 기초/군대에서 해봤던 Kaggle 복습(Titanic, Bike sharing)을 스터디와 혼자 공부하면서 병행
    • python 프로그래밍/ R에 대해 익숙하지 않았을 때라 친해져 볼려고 노력!
    • 이때의 열정을 다시..!
  • 복학 준비

    • 계절학기를 병행할려고 했지만 집과 학교가 2시간 거리라 포기
    • 현재 다니고 있는 과와 데이터를 어떻게 연결 지어 볼 수 있는지 고민!
    • 기대와 실망 그 사이의 첫 자취를 시작함

[개인]

  • 친할머니께서 돌아가심.
    • 감정적으로 많이 힘들던 시기 복학하기 바로 전이라 복학 후 마음을 추스리는데 시간을 많이 씀.
    • 충분히 할머니를 생각하는 시간을 가짐. 전역 후 할머니를 마지막을 함께 할 수 있는 시간을 가져 감사함.
    • 매 순간 감사하고 고마운 사람들에게 감사하다는 말을 할려고 하는 습관을 가지자 라고 다짐함.

3월~4월(1학기 초반)

[학업]

  • 머신러닝 기법들을 공부하면서 전공을 다시 고민하게게 되었던 시기
    • 즐거우면서도 혼란스러웠던 시간
    • 원래 전공과 새롭게 공부하는 데이터 분석과 접점을 찾거나, 다른 전공으로의 전과나 석사등도 고민을 시작하게되던 시간
    • 동아리에서 여러가지 발표를 듣고 발표를 하게되는 기회가 생기면서 부족함을 많이 깨달음..
    • 중간고사 기간이 오고 학교에서는 데이터와 관련이 없는 수업을 듣다보니 공부하는 시간이 줄어듦..

[개인]

  • 호기롭게 시작한 복학 학기 동기들의 졸업식 보며 살짝 긴장
    • 복학을 하면서 전역버프를 받아 열심히 해볼려고 아침 강의 넣고 열심히 다님!
    • 4월 졸업식에 취업한 여자 동기들의 졸업식을 보면서 살짝 부럽기도 하면서 긴장 취업에 대한 고민을 구체적으로 생각하게 되었던 시기
    • 과연 나는 내가 좋아하는 공부를 하는 것이 맞는 것일지, 현실적인 조건을 따져가면서 조금 더 멀리 보고 취업을 접근해야할지 고민이 많아진 시기

5~6월(1학기 후반)

[학업]

  • 머신러닝 알고리즘에 대한 이해, 딥러닝 기초 학습

    • 김성훈 교수님의 모두를 위한 딥러닝/ 파이썬 라이브러리를 활용한 머신러닝 학습

    • 동아리에서 진행하는 커리큘럼에도 겹치는 부분도 있었고 2학기 프로젝트 하기전 어느정도 학습이 필요하다고 생각해서 스터디와 학습진행

    • 머신러닝 알고리즘들이 나에게는 처음이였고 딥러닝도 처음 듣는거라 굉장히 낯설었다.

  • 여러가지를 찾아보고 들어보기 시작했던 시기

    • 데이터를 공부해보면서 흥미를 가지게 되서 전공과 관련해서 데이터로 갈 수 있는 직군이 있는지 찾아보고 교수님들께 가서 물어봄.
    • 변성윤 선배님의 특강을 우연히 듣게 됨 - 살짝 당황스럽고 데이터에 대해 나름 이제 입문은 했구나 생각 했는데 아무것도 모르고 있었구나를 알게 된 계기. 프로젝트를 하면서 느끼지만 정말 선배님이 적은 내용중에 틀린 게 하나도 없었다. 진지하게 데이터와 관련된 진로를 고민을 할 수 있게된 계기
  • 동아리의 대표를 맡게 되다.

    • 빅데이터 동아리의 나보다 윗기수 공동대표 누나에게 동아리공동대표 자리를 권유받았다. 열심히 나오는 것을 좋게 봐주셨다고 해서 감사했지만 처음에는 비전공자 + 아직 배우는 수준의 실력 + 이렇게 많은 사람들을 이끌어 본 경험이 전혀 없어서 거절했다. 하지만, 그런 부분에 있어서는 다른 선배분들이나 잘하는 동기들에게 도움을 받고자 하고 나도 동아리에 기여하고 싶은 부분이 있고 20살때부터 들어가고 싶었던 동아리에 보탬이 되고 자 공동대표 자리를 하게 되었다.
    • 여러가지를 해보고 싶고 해결하고 싶은 문제들도 있었다. 동아리 대표로서 겪은 점은 다음 진로/휴학 얘기와 같이 정리!

[개인]

  • 부모님께서 아프셨음.
    • 부모님의 건강을 조금 더 들여봐야겠다고 생각하게 된 계기.
    • 가족으로서의 나의 역할 내가 해야할 일들을 생각하고 정리.
    • 개인적으로 가장 힘들었던 시기(부모님 건강 체크/도와드리기+동아리 대표+기말고사+취업/전과 고민) - 이렇게 개인적인 일,학업적인 일등 여러가지 겹치면 그때의 시간배분이나 대처를 어떻게 해야하는지 정리해둘 필요.

Continue reading

K-means Clustering

문일철 교수님의 인공지능 및 기계학습 개론 II의 8강을 듣고 정리한 것입니다.

동아리에서 프로젝트를 하면서 토픽모델링을 하고 있는데 이론적인 부분이 부족하다고 느껴 이를 잡고자 강의를 듣게 되었습니다.

위의 강의를 통해

  1. K-means Clustering
  2. Gaussian Mixture Model
  3. LDA with Gibbs Sampling

을 정리해 보고자 합니다.

강의를 정리하면서 위와 관련된 Python code&library도 정리해보고자 합니다.


오늘 강의는

  • Unsupervised Learning
  • K-means Alghorithm
  • Limitation of K-means

에 관해 알아 볼 것 입니다.

Unsupervised Learning

Machine Learning

  • Supervised Learning
  • Unsupervised Learning
  • Reinforcement Learning

Supervised Learning

  • True value을 아는 것
  • Train case을 알고 있다
  • 이를 분석해서 가정을 세우고 검정해볼 수 있다.

Unsupervised Learning

  • True value값이 없다 = Tag가 없다
  • Latent factors찾는 과정 = Pattern을 찾는다
  • ex) Clustering, Filtering

How to cluster with unlabelded data points

  • 잠재적인 class(cluster) 결정
  • class에 맞게 data points 할당
  • 이를 Optimized

부정확한 클러스터링 구간이 있음 - 문제점

K-Means Algorithm

  • 알고리즘 순서

    • K개의 Centroid setup
    • 각 data points들을 거리가 가까운 Centroid 할당
    • Cluster 구성!
  • 목적함수

    • 가장 중요한 것은 각 data points들을 거리가 가까운 Centroid 할당

      = 모든 데이터 포인트들이 해당하는 Centroid와의 거리가 최소가 되게 하면 됨!

    • M : centroid의 위치 , X는 개별 데이터 포인트

    • R : assignment에 대한 정보

      • n번째의 x포인트가 k번째 Centroid에 해당 하면 1 아니면 0
      • 계산에 넣을 지 말지 결정 시켜줌!
    • 목적함수의 parameter는 두개(M,S)

    • 이를 Optimize하기 위해서는 iterative Optimization해야함

Expectation - Maximization을 돌아가면서 계속 진행함

  • Expectation
    • r을 optimize하는 과정
    • 초기 centroid들을 임의로 지정 한후 그에 맞게 centroid에 할당하기
    • r값이 0,1값 가지지 못해 가지는 문제점
      • 애매한 지점에서의 데이터 포인트를 확률이 아닌 0과1로 표현
  • Maximization
    • M을 optimize하는 과정
    • Centroid된 데이터들의 값들의 평균을 내서 M을 optmize

Limitation of K-Means

  • K의 갯수를 정하는 법?
    • Bayesian information criterion 뒤의 강의에서 설명해 주신다고함
  • Centroid을 정하는 법
    • 초반에 located 임의로 설정하기도 해
    • 이도 문제점이 있음 local에 갇힐 수도 있다
  • Distance metrics
    • 거리로 cluster 형성을 하게되면 위-아래 방향성이나 다른 요소들을 고려 못함
    • 원의 형태로의 clustering 밖에 안됨
    • 다음 강의Gaussian Mixture Model을 통해 개선
  • Hard clustering
    • r의 값(데이터 포인트의 할당 값)이 0과 1로만 표현됨
    • soft clustering 필요

Continue reading

Pagination


© 2018. by Gangmin

Powered by zzsza