목록2021/02 (17)
우노
Feature Selection이란? Feature Selection은 ML에 있어서 매우 중요한 기술입니다. Feature Selection의 기본적인 아이디어는, 모델링 시 raw data의 모든 feature를 사용하는 것은 computing power와 memory 측면에서 매우 비효율적이기 때문에, 일부 필요한 feature만 선택해서 사용하자는 것입니다. 어떻게 보면, Feature Selection은 여러분의 모델 성능을 높이기 위해서 반드시 필요한 기술 중 하나입니다. Feature Selection은 Feature Engineering, Feature Extraction과 유사하지만, 표현 자체는 구분되며, 간단하게 정리하면 아래와 같습니다. Feature Engineering : 도메인..
해당 포스트에서는 하드웨어 구성요소에 대해서 살펴보겠습니다. 들어가기 앞서, 우선, PC 는 소프트웨어와 하드웨어로 이루어져있으며, 하드웨어는 아래 3가지 구성요소로 이루어져있습니다. 중앙처리장치 CPU 기억장치 RAM (주기억장치) HDD (보조기억장치) 입출력장치 마우스, 프린터 중앙 처리 장치 CPU 는 컴퓨터의 모든 연산과 작업을 처리하는 장치이며, 아래 구성 요소로 이루어져있습니다. CU (제어장치) 명령어를 순서대로 실행할 수 있도록 제어하는 장치입니다. 주기억장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 따라, 명령어 실행에 필요한 제어 신호를 연산장치, 기억장치, 입출력장치로 보냅니다. 또한, 장치가 보낸 신호를 받아, 다음에 수행할 동작을 결정합니다. ALU (산술논리연산장치) 산..
log4j Apache Spark 작업을 실행할 때, 작업이 어떻게 진행되는지 로그를 찍어가며 확인하고 싶다면 Apache log4j을 사용해 Log를 확인할 수 있다. log4j는 Scala에서도 사용할 수 있는 인기있는 Java 기반 로깅 유틸리티이다. 사용 예제 import org.apache.log4j.LogManager val log = LogManager.getRootLogger log.warn("test")
Spark 서브 모듈 빌드 spark 다운로드 사이트 https://github.com/apache/spark Spark release : 3.1.1 package type : Pre-build for Apache Hadoop 2.7 download wget https://mirror.navercorp.com/apache/spark/spark-3.1.1/spark-3.1.1.tgz tar -xvzf spark-3.1.1.tgz 간단한 코드 수정 (오류 시 출력하는 문구 변경) github reference code (Spark sparse - dense multiplication) https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/..
XGBoost는 내장함수 또는 pickle, joblib 모듈을 사용해 모델을 저장/불러오기 할 수 있습니다. 내장 함수 import xgboost as xgb # 모델 정의 및 학습 xgb_model = xgb.XGBRegressor(**param).fit(trainData.features, trainData.labels) # 파일명 filename = 'xgb_model.model' # 모델 저장 xgb_model.save_model(filename) # 모델 불러오기 new_xgb_model = xgb.XGBRegressor() # 모델 초기화 new_xgb_model.load_model(filename) # 모델 불러오기 pickle import pickle # 모델 정의 및 학습 ..
One-Hot Vector 기존의 자연어처리 분야에서는, 단어를 One-Hot Vector 로 표현했습니다. One-Hot Vector란, 예를 들어 사전에 총 10000개의 단어가 있고, Man이라는 단어가 사전의 5391번째 index에 존재한다면 Man이라는 단어를, 5391번째 index만 1이고 나머지는 0인 10000차원 Vector로 표현하는 것입니다. 이 방법은 단순하다는 장점이 있지만, 단어를 단순히 index에 따른 Vector로 표현하기 때문에, 여러 단어 간 유사성을 평가할 수 없을 뿐만 아니라, 사전의 단어 개수가 증가하는 경우, One-Hot Vector의 크기가 지나치게 커진다는 단점을 가지고 있습니다. 따라서, 단어의 유사성을 파악할 수 있고, 저차원을 가지는 Vector를 ..
NLP에서 단어를 표현하는 방법으로는 One-Hot Vector와 Word Embedding이 있다. One-Hot Vector와 Word Embedding에 대해서 알아보자. One-Hot Vector One-Hot Vector는 단어를 사전 개수 만큼의 차원을 가지는 Vector로 표현하는 것이다. 예를 들어, 사전에 총 10000개의 단어가 있고, Man이라는 단어가 사전의 5391번째 index에 존재한다면 Man이라는 단어를, 5391번째 index만 1이고 나머지는 0인 10000차원 Vector로 표현하는 것이다. 단점 여러 단어의 유사성을 표현해줄 수 있는 방법이 없다. 예를 들어, 위 그림처럼 Man과 Woman은 단순히 사전의 index에 따른 One-hot Vector로 표현되기 때문..
Naive Neural Network "Yesterday, Harry Potter met Hermione Granger"라는 문장을 입력 받았을 때, 문장의 각 단어가 사람 이름이라면 1, 아니라면 0을 매핑하는 Naive한 개체명 인식 신경망을 만든다고 가정해보자. 입력 문장의 각 단어는 Voca(단어사전)의 index를 통해 사전 개수 만큼의 차원을 가지는 one-hot vector로 매핑될 것이며, 단어는 총 9개이므로, 9개의 one-hot vector가 구성될 것이다. 따라서, 해당 단어가 사람 이름이라면, 해당 one-hot vector의 y값은 0으로 매핑 해당 단어가 사람 이름이 아니라면, 해당 one-hot vector의 y값은 1로 매핑되며 학습이 진행될 것이다. 하지만 이러한 방법은 ..
Sequence Model Sequence Model이란, 연속적인 입력(Sequential Input)으로부터 연속적인 출력(Sequential Output)을 생성하는 모델입니다. 예를 들어, 챗봇(Chatbot)과 기계 번역(Machine Translation)이 대표적인 예인데, 챗봇(Chatbot)은 입력 시퀀스와 출력 시퀀스를 질문과 대답으로 구성한것이며 기계 번역(Machine Translation)은 입력 시퀀스와 출력 시퀀스를 입력 문장과 번역 문장으로 구성한 것입니다. Sequence Data 여러 Sequence Model은 아래와 같은 Sequence Data들을 다룹니다. 위 그림을 통해, 다양한 종류의 Sequence Model들이 존재하며, 각 모델들은 여러가지 유형의 Sequ..
Neural Style Transfer Neural Style Transfer란, 두 이미지(Content Image & Style Image)가 주어졌을 때 Content Image의 형태는 유지하면서 Style Image와 유사한, 새로운 Image를 Generated 하는 것을 의미합니다. 위 그림에서는, 건축물을 Content Image로 주고, 화가의 작품을 Style Image로 주어, 건축물의 형태와 배치는 유지되면서 화풍만 유사한 새로운 Image가 생성된 것을 볼 수 있습니다. CNN 모델의 어느 Layer에서 특징(feature)를 추출할 것인가? Neural Style Transfer은 CNN 모델을 통해 동작하며, Content Representation과 Style Represen..