본문 바로가기

Tech

(556)
확률변수(RV)와 누적분포함수(CDF) 이번 포스팅에서는 확률변수의 개념과 누적분포함수에 대해서 알아보려고 한다. 1. 확률변수(RV) 우리는 이전의 포스팅까지 Sample Space에서 발생하는 특정한 사건에 대해서 다루어 왔다. 이러한 사건(outcome)에 대해 mapping한 Real number에 해당하는 것이 바로 확률변수이다. 동전 1개 던지기로 예시를 들어보자. 동전 1개를 던져서 나올 수 있는 경우의 수는 앞면(H), 뒷면(T) 두 가지이다. 이 각 두개의 사건을 각 1, 0 이라는 Real number를 mapping시켜 주는 것이 확률변수이다. 따라서 만약 앞면이 나올 확률변수와 확률을 구한다고 하면 P(H) = P(1) = 1/2이 된다. 왼쪽 그림 용어 필기속 "RV는 보통 X,Y,Z(대문자)" 라고 되어 있는데 여기서..
[딥러닝] NN(Neural Network)의 등장과 개념 이번 포스팅에서는 딥러닝 즉, 뉴럴네트워크(NN)의 등장과 개념, 그리고 뉴럴네트워크의 한계를 Backpropagation(역전파)를 통해서 어떻게 해결했는지에 대해 알아보려고 한다. 1. 뉴럴네트워크의 등장 우리가 다루었던 선형회귀, 로지스틱 회귀, 소프트맥스 이러한 머신러닝 모델들은 linear로 여러가지 문제들을 해결할 수 있었다. 하지만 절대 해결할 수 없는 문제가 하나 있었으니.. 그것은 바로 XOR 문제이다. XOR이란 다음과 같다. X Y XOR 0 0 0 1 0 1 0 1 1 1 1 0 OR 과 AND 그리고 XOR 문제를 그래프로 나타내보면 다음과 같다. 그림에서 보다시피 OR 과 AND 는 기본적으로 Linear를 그려서 분류를 할 수 있다. 하지만 XOR은 어떤 방식으로라도 Linea..
순열(Permutation)과 조합(Combination) 이번 포스팅에서는 순열과 조합에 대해서 알아보는 시간이다. 순열과 조합 두개를 모두 일컬어 'Combinatorial Analysis'라고도 부른다. 1. 순열(Permutation) : 서로 다른 n개를 일렬로 나열하는 것이다.(line arrangement for 'n' different objects) 이때 순서(order)는 고려한다. 그림으로 예시를 들어보자면 그림 속 왼쪽의 그림과 같이 된다. n개 중에서 r개를 일렬로 쭉 세울 대 nPr이라는 수식이 나오게 되고 !(팩토리얼)로 풀어내게 되면 위와 같은 수식이 된다. 참고로 0! 은 왜 1일까? 에 대해서 고민한다면 0! 이라는 것은 '아무것도 나열하지 않는것 ' 이라는 것을 의미하기 떄문에 아무것도 나열하지 않는 것도 하나의 경우의 수이기 ..
조건부확률과 Bayes 정리 데이터 분석에 있어서 기본적으로 알아야 할 지식이 바로 통계지식이다. 사실 고등학교 이후로 통계의 'ㅌ'자도 본적이 없다.. 하지만 그래도 고등학교 시절 문과이긴 했지만 수포자가 아니었고 수학에 나름 흥미가 있었던 터라 공부하려는 의지가 조금은 불탄다.. 책으로 공부하기에는 너무나도 어렵고 막막하기 짝이 없는 통계 분야이기 때문에 open course를 이용해 한양대학교 이상화 교수님의 확률과 통계 강의를 이용하기로 했다. 설명하는 내용에 대한 첨부 사진은 본인이 직접 강의를 들으면서 필기한 사진으로 대체하려고 한다. 최대한 이해할 수 있도록 설명을 써놓은 거라서 인터넷에 떠도는 수식만 적혀있는 사진보다 내가 이해하기 쉬울 것 같아 이렇게 하려고 한다.(발글씨 아니도록 노력하겠습니다..!) 앞으로 강의 ..
[ML] 머신러닝 모델링 시 필요한 데이터 종류 그리고 Epoch란? 이번 포스팅에서는 간단한 개념정의를 하려고 한다. 그동안 배웠던 머신러닝 모델링에 관한 내용은 아니니 쉽게 접근하면 되겠다. 소개할 주제는 다음과 같다. 1. 머신러닝 모델시 Train / Test / Validation 데이터들의 각각의 개념 2. Online Learning이란? 3. Epoch와 Batch의 개념 머신러닝을 모델링 하고 성능을 검증할 때 위 그림과 같이 Raw Data에서 2가지 또는 3가지로 나누어 준다. 학습률(Learning rate)과 Regularization Strength 상수값을 튜닝하기 위해서는 가장 밑의 3가지(훈련/검증/테스팅) 종류로 나눈 방법을 사용한다. 이렇게 3가지 종류로 나누어서 검증하는 이유는 쉽게 예를들면 이렇다. 중,고등학교 시절 우리는 중간고사를 ..
[ML] Learning rate, 데이터 전처리, Overfitting(과적합) 이번 포스팅에서는 머신러닝을 모델링할 때 중요시되는 3가지에 대해서 알아보고 머신러닝 모델링할 때 팁을 알아보려고 한다. 3가지는 다음과 같다. 1. Learning Rate(학습률) 2. Data preprocessing(데이터 전처리) 3. Overfitting(과적합) 학습률이라 함은 우리가 앞서서 같이 봐왔던 여러 회귀분석 모델에서 Cost값을 최소화시키기 위해 Gradient Decent 알고리즘을 사용했고 이 때 최소의 Cost값을 찾아가기 위해서 임의의 정도의 Step을 설정해주어야 한다고 했었다. 그림을 보면 기억이 날 것이다! 위 그림 속 빨간색 알파값이 바로 Learning Rate이다. 그러면 모델링을 하는 사람이 알파값을 크게 또는 작게 줄 때 대체 어떤 일이 발생할까? 한 번 알아..
[ML] Softmax Regression(다중분류모델) 이번 포스팅에서는 회귀분석의 연장이라고 할 수 있는 다중분류 모델에 대해서 다룰 예정이다. 보통 Multinominal Logistic Regression이라고도 불린다. 저번 시간에 다뤘던 로지스틱 리그레션은 합격/불합격, 스팸메일인가/아닌가, 사용자가 좋아하는 페이스북 피드인가/아닌가 같은 Binary(이진) 분류에 적합한 모델이였다. 이번에 소개할 모델은 2개 이상인 3개,4개,5개..의 Class들을 분류할 수 있는 모델이다. 하지만 이렇게 다중분류를 Binary를 이용해서 분류 할 수도 있다! 밑의 그림을 보자. 그림 속에 3가지 선이 있다. A인지 아닌지를 분류하는 Linear B인지 아닌지를 분류하는 Linear C인지 아닌지를 분류하는 Linear 이렇게 함으로써 밑의 수식을 만들어낼 수 ..
[ML] Logistic Regression for Classification 이번 포스팅에서는 바로 직전에 포스팅 했던 Linear Regression과는 조금 다른 로지스틱 리그레션에 대해 다룰 예정이다. 로지스틱 리그레션은 연속하는 값을 예측하는 선형회귀와 달리 원-핫 인코딩을 이용해서 분류 값을 예측하는 모델이다. 로지스틱 리그레션은 3가지만 기억하자! Linear Regression에 Sigmoid 씌우기 Cost값(예측,실제 값 차이) 측정 Cost값을 최소화 하기 위해 Gradient Decent(기울기 하강) 적용 우선, 선형회귀분석의 한계 부터 알아보자. 간단한 예시를 들어보겠다. 위 그림은 공부시간에 따른 시험의 합격/불합격에 대한 그래프이다. x축은 공부시간, y축은 시험 통과 여부이다. 우선 파란색으로 그려진 x와 o 표시로 된 데이터에 기반해서 파란색의 Li..
운영체제(OS:Operating System)란? 어떠한 분야의 공부를 시작하든 기초가 가장 중요하듯이 컴퓨터와 관련된 공부를 하기 위해서는 컴퓨터에 대한 기초지식이 있어야 한다고 생각한다. 물론 저번학기에 복수전공을 시작한 수업에서 '컴퓨터개론'이라는 수업으로 컴퓨터가 어떻게 탄생했고 어떻게 돌아가는지에 대한 내용을 듣기도 했다. 하지만 이에 대해 다시 복습하고 중요한 내용인 만큼 기록해 놓자는 의미에서 '운영체제' 카테고리를 따로 만들어서 기록해보려고 한다. 가장 먼저, 운영체제가 무엇인지부터 알아보자. 운영체제 : OS(Operating System)이라고 부르며 대표적인 운영체제로는 Linux, Mac, Windows, UNIX가 있다. 그렇다면 운영체제의 역할에 대해서 알아보자. 1. 시스템 자원(하드웨어) 관리자 2. 사용자와 컴퓨터간의 커뮤..
[GCP] 리소스 관리(Quotas, Labels, Billing) 이번 포스팅에서는 GCP를 이용해서 소비하는 리소스들을 관리하는 방법에 대해서 알아보겠다. GCP가 클라우드 서비스이다 보니 해당 서비스를 이용하면서 돈을 내야 한다. 하지만 이러한 클라우드 서비스를 이용하면서 일일이 이용 요금이 얼마 나왔는지 사용자가 직접 계산해야 한다면 진절머리가 날 것이다... 게다가 GCP는 요즘 용어로 '빅데이터'를 처리하기 위해 사용하는 클라우드 서비스이기 때문이다. 소개하기 전에, 참고로 나의 리소스를 관리받기 위해서는 GCP에게 내 project ID/Number/Name을 알려주어야 관리 받을 수 있다. 이제 본격적으로, 리소스를 관리하는 방법으로서 크게 3가지 종류가 있는데 Quotas(한국 사전적인 의미로는 '할당량'), Labels, Billing이 있다. 바로 하..
[ML] Linear Regression(선형회귀분석) 머신러닝에는 기본적으로 Supervised Learning(지도 학습) 과 Unsupervised Learning(비지도 학습)으로 크게 구분된다. 두개의 차이에 대해서 정의하자면, 미리 '정답'을 알려주면서 기계에게 정답을 학습시켜줌으로써 기계가 그 정답을 습득하고 스스로 알아서 정답을 판단해주는 것이 '지도학습'이다. 반면에 '정답'을 미리 알려주지 않고 패턴이 없는 비정형 데이터안에서 일정의 패턴을 찾는 것이 '비지도 학습'이라고 보면 된다. 이번 포스팅에서 작성할 머신러닝 모델은 지도학습 중에서도 가장 기본적인 모델인 Linear Regression(선형회귀분석)에 대해서 작성해보려고 한다. 우선 선형회귀분석이라 함은 연속적인 숫자값을 예측하는 것이다. 쉽게 설명하기 위해서 밑의 예시를 들어보자...
[GCP] Cloud SQL과 Other DB들 그동안 GCP에 대한 이론공부에만 몰두하느라 최근 일주일 간 블로그 포스팅을 하지 못했다.. 어느정도 진도를 나갔기 때문에 그동안 공부했던 내용을 복습하는 차원에서 다시 순차적으로 포스팅해보려 한다. 저번시간에 포스팅한 내용은 GCS(Google Cloud Storage)에 관한 내용이였다. GCS는 Unstructured data(비정형 데이터)에 적합한 클라우드 서비스였다. 이번에 포스팅할 내용들은 Cloud SQL과 기타 다른 DB(데이터베이스)들에 대한 내용이다. 여기서 다른 DB란, Cloud Spanner, Cloud Firestore, Cloud Bigtable, Cloud Memorystore을 말한다. 뿐만 아니라 앞으로 이 포스팅에서 등장하는 서비스들은 모두 Structured Data..
[GCP] GCS ( Google Cloud Storage )에 대한 이해 이번 포스팅에서는 GCS라고 불리우는 Google Cloud Storage에 대해서 공부해본 내용을 소개하려고 한다. 최근 들어 한국어로 된 '구글 클라우드 플랫폼 뽀개기' 라는 박정운님이 지으신 책으로 사전 지식과 개념을 이해하고 코세라 강의를 들으면서 해당 책에선 설명이 되지 않았던 추가 적인 내용을 공부하는 식으로 진행하고 있다. 처음에 했던 방식과는 좀 다른 공부 방법이지만 몇 번의 시행착오를 거친 끝에 이게 가장 나에게 맞고 이상적인 공부 방법이라고 생각하고 있다..! 그렇다면 이제 Cloud Storage에 대해서 알아가 보기 전에 앞으로 계속적으로 다룰 GCP내의 여러가지 Storage와 Database 중에서 어느 걸 선택할지에 대한 기준을 마련해주고 있는 테이블과 의사결정모델을 큰 숲을 ..
[GCP] Cloud Load Balancing 과 Auto Scaling 다시 본격적으로 GCP 공부를 시작했다. 이번 포스팅에서는 클라우드 로브 벨런싱과 오토 스케일링에 대해서 배워보겠다! 우선적으로 로드 밸런싱이라는 개념에 대해서 짚고 넘어가자. 로드 밸런싱이란, 한번에 많은 요청으로 트래픽이 급증했을 때 여러대의 VM에 트래픽을 분산하는 것을 말한다. 그럼 여기다가 Cloud 개념만 붙이면 이러한 기능을 제공해주는 Cloud를 말하는 것이다. 1. on-premise에서 필요했던 pre-warm-up(가동 준비과정)이 필요가 없다. #가동 준비과정 : 대량의 트래픽을 처리하기 위해서 미리 트래픽을 처리하는 과정을 거치는 것인데 운동으로 비유를 하자면 본격적인 강 도가 높은 운동을 하기 전에 웜업 운동을 하는 것이 가동 준비과정이라고 이해하면 된다. 2. HTTP(S), ..
[Python웹크롤링] Selenium과 Webdriver를 이용한 브라우저 자동 검색 예전에 한 아주 자그마한 토이 프로젝트 이지만 selenium과 웹드라이버를 이용해서 네이버 검색창에 자동으로 키워드를 입력하는 걸 다시 복습할 겸 진행해보았다... 사실 다른 웹크롤링 강의를 듣고 실습하려다가 에러나고 빡쳐서...복습겸 쉬운 프로젝트좀 하려고 다시 건너왔다 ㅜㅜ 그럼 이제 본격적으로 간단한 코드인지만 코드에 대해서 분석해보고 의미를 이해해 보자! 우선 가장 필요한 셀레니엄 모듈에서 웹드라이버를 임포트한다. 그리고 난 크롬브라우저를 이용했기 때문에 내 로컬에 크롬웹드라이버가 저장되어 있는 경로를 작성해주고 웹드라이버를 활성화 시켜준다. 다음에 한 두가지의 설정은 브라우저가 켜질때 내부적으로 대기하는 시간을 설정하는 것이다. 지난 글에도 한번 적었던 적이 있는 기억이 있다. 그리고 내 컴퓨..
[Python웹크롤링] Selenium을 이용해 사람인 채용정보 크롤링 웹크롤링 강의를 배우면서 가장 유용한 패키지 두개를 꼽으라고 하면 BeautifulSoup와 Selenium이라고 할 수 있겠다. 설연휴 전에 강의를 들어 배웠었지만 설연휴동안 일하면서 복습도...공부도... 쉬다보니 연휴가 끝나니 머리가 백지상태 처럼 되었었다.. 그래서 다시 토이프로젝트 처럼 복습차원 겸 다시 웹크롤링 예제를 만들어 보려고 한다. 요즘 노마드 코더 아카데미를 이용해서 웹크롤링에 대한 다른강의를 또 듣고 있는데 패스트 캠퍼스와는 다른 방법을 쓰는 거 같기도 해서 신기하기도 했지만 더 어지러워진 것 같다... 이번에 하기로 한 것은 '사람인' 이라는 채용정보 사이트에서 '데이터 엔지니어'를 검색하고 나오는 '채용정보' 와 '채용마감시간' 이렇게 2가지 정보를 각각 연속적으로 크롤링 해보았..
[Python웹크롤링] REST API에 대한 이해 웹크롤링을 하면서 웹사이트에 정보를 요청하고 받는 과정을 배우면서 REST API에 대해서 공부를 좀 하게 되었다. 그런데 사실 어려운 개념이기도 한 것 같고 여러 블로그의 글을 찾아보다가 너무 모르겠어서 유투브에 깊게는 아니지만 얕게라도 쉽게 설명해 놓은 영상을 찾았고 추가적으로 조대협님의 블로그의 글을 참고하며 얕게나마 개념을 설명하고 유투브 영상 링크를 걸어 놓기로 하겠다. REST의 유래 REST는 웹의 본래 우수성을 100% 활용하지못하고 판단하여 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍쳐 즉 개발자들끼리의 약속(?)같은 형식을 만들었는데 그것이 REST(Representational Safe Transfer) 이다. REST의 요소 REST = 리소스 + 메소드 + 메세지 이..
[GCP] GCP의 기초부터 다시 잡자 설날연휴로 인한 아빠가게 일을 도와주는 덕분에 몇 주동안 공부를 하지 못했다... 이제 다시 시작하려고 한다. 그나저나 코세라 강의와 병행을 했었는데 알고보니 코세라 강의의 첫번째 강의가 전체범위를 아우르는 내용이여서 그 전에 내가 작성했던 공부내용이 사실 그렇게 해당내용을 깊게까지 공부했던 내용은 아닌걸 알게 되었다. 그래서 두번째 강의부터 다시 처음부터 시작하는 코세라 강의 진도에 맞춰 GCP 뽀개기(한국어로된) 책으로 이해하고 공부내용을 작성하려고 한다. 이번 시간에는 GCP의 기본 개념을 완전히 숙지하는 시간을 가져보겠다! 먼저 클라우드는 크게 제공하는 서비스 범위에 따라 3가지로 나뉜다. IasS(Infrastructure as a Service) : 시스템 인프라(서버, 네트워크, 스토리지, ..
[GCP] VPC(Virtual Private Cloud) ▶ VPC란? - GCP 리소스를 위한 관리형 네트워킹 기능을 제공 - 실제 네트워크와 동일한 방식으로 작동 - 데이터 센터의 지역 가상 서브넷으로 구성 - 글로벌 광역 네트워크로 연결된 글로벌 리소스 그러면 이제 에 대해서 자세히 알아보자. 1. 연결된 라우터와 방화벽 규칙을 포함한 전역 리소스이다. 2. 방화벽 규칙은 인스턴스에서 송수신 되는 트래픽을 제어할 수 있다. 3. 서브넷은 지역(Region) 리소스로, 각 서프벳은 CIDR을 이용해 IP주소 범위 정의 4. 내부 IP 주소가 있는 instances는 Google API 및 서비스와 통신 가능 5. 네트워크 관리는 IAM을 사용해 관리가 가능 6. VPC 공유를 이용하면 VPC 네트워크를 공용 Host project에 유지할 수 있음 7. V..
[Python웹크롤링] Session 활성화와 Cookie 전송 받기 이번엔 웹 브라우저에 요청하고 데이터를 가져올 때 Session을 활성화 하는 방법과 https://httipbin.org 불러오는 중입니다... 위 홈페이지를 통해서 Cookie 정보를 이용해 쿠키정보를 수신하는 방법에 대해서 공부해 보려 한다. 우선 requests를 import하고 s 라는 변수에 requests.Session() 으로 세션을 활성화 시켜준다. 그리고 r 이라는 변수에 get 방식을 이용해 특정 url 을 할당시켜준다. 그리고 .text 함수를 사용해 데이터를 확인해본다. 뿐만 아니라 수신 받을 때 정상적으로 잘 받았는지 '200' 이라는 코드를 확인하기 위해 .status_code 를 통해서 확인해 본다. 여기서 참고적으로 .ok 라는 함수를 이용해서도 수신 상태를 확인 해 볼 수..