본문 바로가기

Tech

(583)
[그로스해킹] 그로스해킹의 정의와 구성 데이터분석가라는 희망직무를 선정한 후에 어떤 역량이 필요한지 찾아보았다. 그리고 '그로스해킹'이라는 단어를 알게 되었다. 그리고 무작정 그로스해킹을 파헤치기 위해 책 한 권을 샀다. 분량이 많은 책이지만 부분적으로 읽을 때마다 책의 내용을 문서화시키고 나중에 적용하기 위해 남겨놓으려고 한다. 그럼 시작하자. (책 링크는 글 하단에 남겨놓겠습니다.) 그로스해킹은 무엇인가? 여기서 그로스는 Growth다. 즉, 한국어로 성장이라는 의미이다. 그로스해킹이라는 용어는 기업의 성장을 촉진시키기 위한 방법론 중 하나이다. 그렇다면 구체적으로 그로스해킹은 어떤 방법을 의미하는 걸까? 기업들은 스타트업으로 출시한 후 열정적인 마케팅과 기술력으로 어느정도 성장..
정규분포(Gaussian Distribution)의 정의와 활용 이번 포스팅에서 다룰 내용들은 다음과 같다. 1. 정규분포의 정의 2. 이항분포에서 정규분포의 활용 3. 정규분포의 Error Function 4. 파스칼(Pascal)분포에 대한 간략한 개념 1. 정규분포의 정의 정규분포는 가우시안(Gaussian)분포라고도 부른다. 정규분포는 기본적으로 연속확률변수(Continuous)일 때를 다룬다. 그래서 정규분포의 확률변수는 연속확률변수이다. 그리고 정규분포는 이미지 센서, 오디오 음성 신호, 모바일 채널 등과 같은 case들에서 쓰인다. 또한 Quantization(양자화)과 같은 아날로그 데이터를 처리할 때도 가우시안 분포로 나타낼 수도 있지만 보통 연속균등분포(Uniform Dist)으로 나타낸다. 그렇다면 정규분포의 PDF(확률밀도함수), CDF(누적밀도..
지수분포(Exponential)와 어랑분포(Erlang) 이번 포스팅에서는 다음과 같은 주제들을 살펴보려고 한다. 지수분포의 특성 지수분포와 포아송분포의 관계 어랑(Erlang)분포의 정의와 평균과 분산 연속균등분포(Uniform Distribution)의 평균과 분산 그에 앞서서 그동안 다루었던 우선 포아송 분포와 지수 분포에 대해서 복습해보고 가자. 위 그림을 천천히 읽어보면서 포아송 분포, 지수분포의 각 확률변수는 뭘 의미하는지, 그리고 평균값과 분산값은 각각 뭐였는지 상기해보자. 1. 지수분포의 특성 저번 포스팅에서 베르누이 시행과 관련된 기하분포(Geometric Dist)의 특성 중 하나인 Forgetfulness에 대해서 알아보았다. 지수분포도 이러한 Forgetfulness 특성을 갖는다. (기하분포의 Forgetfulness 특성 포스팅 : h..
베르누이분포와 이항분포의관계 그리고 체비쇼프 부등식 이번 포스팅에서는 다음과 같은 내용들에 대해서 소개하려 한다. 체비쇼프 부등식 베르누이 분포 이항분포 기하분포의 Forgetfulness 특징 1. 체비쇼프 부등식(Chebyshev Inequality) 체비쇼프 부등식은 기본적으로는 이산확률변수(Discrete)와 연속확률변수(Continuous)한 경우 둘다 모두 성립된다. 식은 다음과 같다. 우리가 이전 포스팅에서 다룬 Error모델을 참고해보면 예측값(추정값)과 실제값의 차이를 가장 최소화 하는 확률변수 x값은 E[X] 값으로 평균값이라는 것을 알게 되었다. 체비쇼프 부등식은 이 평균값과 연관이 되어 있는데 일반화된 식은 그림 속 분홍색 형광펜으로 동그라미 쳐진 부분이지만 예시를 들면서 의미를 이해해보자. 밑의 식을 보면 a=2시그마x 라는 분산값..
기하분포, 평균과 분산의 활용(Error Model) 그리고 조건부평균 이번 포스팅에서는 기하분포와 왜 Error Model를 설계할 때 평균과 분산을 활용하는지, 그리고 조건부평균에 대해서 소개하려고 한다. 우선 기하분포부터 살펴보자. 1. 기하분포(Geometric Distribution) 기하분포의 RV(확률변수)는 어떤 사건에서 첫번째로 성공할 때까지의 시행의 횟수를 의미한다. 기하분포에 대한 확률값을 구하는 방법을 네트워크 간 데이터 송수신을 예시로 들어보겠다. t = 송신자, r = 수신자로 송신자가 수신자에게 에러 없이 제대로 데이터를 보낼 확률을 P라고 하자. 먼저 1번만에 송신을 성공할 확률은 P이다. 2번만에 송신에 성공할 확률은 (1-P)*(P)이다. 그러면 k번만에 송신에 성공할 확률은 바로 위의 Pk(k)의 식과 같이 나온다. 이 때, k값은 0을 포..
평균과 분산 그리고 포아송분포와 지수분포 이번 포스팅에서는 확률변수의 평균과 분산을 구하는 방법, 그리고 포아송분포와 지수분포의 특성에 대해 소개하는 시간이다. 우선 산술평균에 대해서 알아보고 가보자. 1. 산술평균Arithmetic Average) 산술평균은 왼쪽 식처럼 우리가 보통 평균을 구하는 것처럼 계산을 하면 된다. 단 이제 특정한 사건이 발생하는 횟수가 각각 다를 때는 오른쪽 그림과 같이 평균값을 구하게 된다. 즉, 각 사건과 그에 mapping되는 확률변수를 곱하여 모두 더한 값을 발생가능한 사건 모두의 합으로 나누어 주게 된다. 2. 확률변수의 평균(Expectation) Expectation이라 함은 평균이며 mean이라고도 부른다. 이전에 우리가 공부한 것처럼 확률변수는 이산(Discrete), 연속(Continuous)확률변..
연속확률변수와 확률밀도함수 이번 포스팅에서는 저번 포스팅의 마지막에서 예고했던 것처럼 Continouous한 Random Variable인 연속확률변수와 확률밀도함수에 대해서 배운 내용을 적으려고 한다. 저번 포스팅에서 말하지 못했던 것인데 이전 글에서 Discrete RV에 해당하는 한국어 수학용어는 '이산확률변수' 이다. 간단하게 이산확률변수에 대한 함수인 PMF(Probability Mass Function)의 수식에 대해서 짚고 넘어가자. 밑의 그림의 X라는 사건에 대한 x라는 확률변수의 확률값은 x=xi일때 xi만큼 평행이동한 델타값(확률값)을 모두 더해준 합과 같아진다. (델타함수에 대한 개념은 이전 포스팅을 참고하시면 됩니다!) https://techblog-history-younghunjo1.tistory.com/3..
확률변수(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 중에서 어느 걸 선택할지에 대한 기준을 마련해주고 있는 테이블과 의사결정모델을 큰 숲을 ..