본문 바로가기

전체 글

(71)
[FastCampus-DE] 3. 빅데이터 플랫폼과 Hadoop Ecosystem 이번 포스팅은 빅데이터 플랫폼과 Hadoop Ecosystem에 대해 다뤄보도록 하겠다. Hadoop 이란 무엇인지? Hadoop 이란 여러 대의 컴퓨터를 클러스터화하고, 대용량 데이터를 클러스터에서 병렬로 동시에 처리하여 처리 속도를 높이는 것을 목적으로 하는 분산 처리 오픈소스 프레임워크이다. Hadoop을 구성하는 요소는 다음과 같이 크게 3가지로 분류할 수 있다. 분산 파일 시스템 (HDFS) 분산 저장을 처리하기 위한 모듈 여러 개의 서버를 하나의 서버처럼 묶어서 데이터를 저장 리소스 관리자 (YARN) 병렬 처리를 위한 클러스터 자원 관리 및 스케줄링 담당 분산 데이터 처리 (MapReduce) 분산되어 저장된 데이터를 병렬 처리할 수 있게 해주는 분산 처리 모듈 Hadoop Ecosystem..
[FastCampus-DE] 2. 데이터 파이프라인 이번 포스팅에서는 데이터 파이프라인에 대해 알아보도록 하겠다. What is Data Pipeline? 데이터 파이프라인이란 무엇일까? 간단히 말하면 다양한 소스에서 데이터를 변환하고 옮기는 일련의 과정을 구성한 시스템이라고 보면 되겠다. 그렇다면 데이터 파이프라인은 왜 필요할까? 데이터 파이프라인을 구성함으로써 데이터 기반의 의사결정을 지원할 수 있을 뿐만 아니라, 데이터 기반의 애플리케이션을 개발하는 데에도 큰 도움이 된다. 그리고 이러한 데이터 파이프라인은 "빅데이터 아키텍처" 설계에 기반하여 구축된다. 이와 같은 데이터 파이프라인을 구축하는 직무가 바로 "데이터 엔지니어" 이다! 지금부터 데이터 파이프라인 구축에 사용되는 각각의 용어들이 무엇을 의미하는지 한 번 살펴보도록 하겠다. ETL "Ext..
[FastCampus-DE] 1. 빅데이터 플랫폼 & 아키텍처 이번 포스팅에서는 빅데이터란 무엇인지 알아보고, 나아가 빅데이터 플랫폼과 빅데이터 아키텍처에 대한 내용도 정리해 보도록 하겠다. "빅데이터란 무엇일까?" 빅데이터란 기존에 존재하는 데이터 처리 응용 소프트웨어로는 처리할 수 없을 만큼 "방대한 양의 데이터"를 의미한다. 뿐만 아니라 빅데이터란 데이터로부터 가치를 추출하고 결과를 "분석하는 기술"로도 그 의미를 갖는다. "빅데이터 플랫폼, 빅데이터 아키텍처?" 우선 플랫폼이란 많은 사람들이 쉽게 이용할 수 있고, 다양한 목적의 비즈니스가 이루어지는 공간이라고 할 수 있겠다. 빅데이터 플랫폼은 "빅데이터 + 플랫폼"의 개념으로, 빅데이터 수집부터 저장/처리/분석 등 전 과정을 통합적으로 제공하여 해당 기술들을 잘 사용할 수 있도록 준비된 공간이라고 볼 수 있..
가능도(Likelihood) 이번 포스팅에서는 "가능도(Likelihood)" 에 대해서 정리해보려 한다. 가능도(Likelihood)의 정확한 개념과 더불어, "가능도"와 "확률"의 차이점에 대해 한 번 정리를 해보려 한다. 우선 확률(Probability)과 가능도(Likelihood)의 정의를 살펴보면 다음과 같다. 확률: 주어진 확률분포에서 해당 관측값이 나올 확률 가능도: 주어진 관측값이 특정 확률분포로부터 나왔을 확률 (= 연속확률밀도함수의 y 값) 음.. 이렇게 한 줄로 된 정의만 보면 무슨 말인지 통 이해가 안 될 것이다... (위 정의만으로 이해가 된다면 그 분은 아마도 통계학 전공자일 것이다) 자, 그러면 "확률(Probability)"의 개념부터 천천히 설명해 보도록 하겠다. "확률"이란 주어진 확률분포가 있을 ..
차원의 저주(The Curse of Dimensionality) 오늘은 "차원의 저주(The Curse of Dimensionality)"에 대해 정리해보는 시간을 갖도록 하겠다. 그래서 차원의 저주가 뭔데?! 차원의 저주를 대표할 수 있는 하나의 사자성어가 있는데, 바로 "과유불급"이다. 결론부터 말하면 차원의 저주란 데이터 용량이 커질수록 불필요한 샘플이 많아지는 현상을 뜻한다. (참고로 "차원의 증가 = 변수의 개수 증가"라고 이해를 하면 쉽다) 차원의 저주와 관련하여 구글에 검색해보면 가장 상위에 뜨는 블로그가 하나 있는데, 이 블로그의 관리자 분께서 정말 이해하기 쉽도록 설명을 해두셨다. 그리고 K-NN 방법이 왜 차원의 저주 문제에 치명적인지도 명확하게 설명이 되어 있으니, 아래의 링크를 참고하면 좋을 것 같다. https://datapedia.tistor..
베이지안 최적화(Bayesian Optimization) 이번 포스팅은 하이퍼파라미터 튜닝 방법으로 많이 사용되는 "베이지안 최적화(Bayesian Optimization)" 기법에 대해 설명해보도록 하겠다. 단, Bayesian Optimization 기법의 이론적인 내용을 깊게 들어가면 너무 어렵기 때문에, 큰 틀에서의 개념 정도만 이해하는 것을 이번 포스팅의 목표로 삼겠다. (솔직히 필자도 아직 이론적으로는 완벽하게 이해하지 못했다..) 물론 대표적인 하이퍼파라미터 튜닝 기법인 "그리드 서치(GridSearch)"와 "랜덤 서치(RandomSearch)"를 사용해서 튜닝을 진행해 볼 수도 있다. 그러나 위 두 가지 방법은 아래와 같은 단점이 존재한다. GridSearch의 단점 모든 하이퍼파라미터 후보들에 대한 일반화 성능을 확인하기 때문에 시간이 너무 ..
[밑바닥부터 시작하는 딥러닝 1] Ch 8. 딥러닝 지금까지 신경망에 대해 자세히 공부하였다. 이번 포스팅은 "밑바닥부터 시작하는 딥러닝 1"의 마지막 장으로 "딥러닝"에 대한 설명을 해보도록 하겠다. 간단하게 설명하면 딥러닝이란 층을 깊게 한 심층 신경망이다. 대규모 일반 사물 인식의 경우, 문제가 엄청나게 복잡하므로 층을 깊게 하면 정확도를 크게 끌어올릴 수가 있다. 이러한 이유 때문에 "딥러닝"이 각광받고 있는 것이다. 또한 딥러닝 모델의 정확도를 향상시키는 방법으로 "앙상블 학습, 학습률 감소, 데이터 확장" 등이 있다. 여기서 "데이터 확장"이란 입력 이미지(학습 이미지)를 알고리즘을 동원하여 인위적으로 확장하는 것을 의미한다. 데이터 확장 방법으로는 대표적으로 6가지가 존재한다. Flip 이미지를 랜덤하게 좌/우 또는 상/하 반전시키는 방법 이..
[밑바닥부터 시작하는 딥러닝 1] Ch 7. 합성곱 신경망(CNN) 이미지 인식 분야에서 딥러닝을 활용한 기법은 거의 다 합성곱 신경망(CNN)을 기초로 한다. 그렇다면 합성곱 신경망. 즉, CNN이란 무엇일까? 이번 포스팅에서는 CNN에 대해 정리해보도록 하겠다. CNN의 네트워크 구조를 살펴보면, 지금까지 앞에서 공부한 완전연결 계층인 Affine 계층에 추가적으로 합성곱 계층(Convolutional Layer)과 풀링 계층(Pooling Layer)이 새롭게 등장한다. 여기서 주목할 점은 출력에 가까운 층에서는 지금까지 공부한 Affine-ReLU 구성을 사용할 수 있다는 것, 그리고 마지막 출력 계층에서는 Affine-Softmax 조합을 그대로 사용한다는 것이다. CNN에서는 패딩(Padding), 스트라이드(Stride) 등 CNN 고유의 용어가 등장하며, ..