목록전체 글 (115)
운동하는 공대생

1 Intro 이미지 분석, 텍스트 분석 등 다양하게 딥러닝 모델과 프로세스들이 각광받고 있는 요즘 Text Extraction 즉 이미지에서 텍스트 정보를 인식하고 데이터화하는 방식에 대한 연구를 진행하였고 내가 사용하였던 layoutlmv2 모델의 이론과 그리고 코드를 리뷰해보려고 한다. 2 Process 이미지에서 텍스트를 추출하는 방식을 간단하게 도식화 하자면 아래의 그림과 같다. 먼저 아래의 그림처럼 이미지에서 text 즉 글씨의 정보를 OCR 기법을 이용하여 단어의 위치와 범위를 bounding box 형식으로 구분하여 지정을 한다. 그 이후에 위치정보와 텍스트 정보를 이요하여서 Layoutlmv2 모델에 적용하고 모델을 학습시킨 후 그 단어가 어떤 layout 에 지정이 되는지를 예측하는 방..

이전 까지는 문장에서 단어의 빈도를 바탕으로 하는 NLP 방법을 알아보았다. 이 방식의 큰 문제는 단어의 빈도를 바탕으로 처리를 해서 문서의 특징을 파악하는 건 가능하지만 각 단어 간의 유사성이나 의미를 파악하기는 어렵다. 예를 들어서 뜻이 다른 같은 단어가 여러 개 나오는 문장에서 이전 방식을 사용하면 의미를 파악하기보다는 문장의 특징을 파악하는 건 가능하지만 그 단어가 다르다는 의미를 파악하기는 어렵다 가령 '날아다니는 파리'와 '프랑스의 수도인 파리' 같은 예시이다. 워드 임베딩 예측을 기반으로 하는 벡터 임베딩 방식을 이용하기 이전에 단어를 수치적으로 표현하는 방식인 워드 임베딩 방식을 꼭 알아햐 한다. 예측을 하기 위한 단어의 데이터를 수치화를 시켜서 예측이 가능한 형태로 바꿔주는 작업니다. 예..
NLP 방식에서 횟수 기반 임베딩(Frequency - based Embedding)은 단어의 빈도수를 바탕으로 하는 NLP 방법이다. 여기서 가장 자주 사용하고 있는 방식은 BOW, Count Vector, TF-IDF Vector 기법이 있다. BOW BOW 방식은 주어진 문장을 형태소 분석을 통해 문자나 단어를 분리하고, 분리된 문자를 인덱스 번호를 부여하여 빈도수로 벡터화를 시키는 방식을 BOW 방식이라고 말한다. 예를 들어, 다음과 같은 단어별로 인덱스를 부여했다고 가정해 보자. 이를 'BOW를 정의했다'라고 한다. "I" -------------- 0 "teacher" ------- 1 "am"------------ 2 "top" ----------- 3 "a" ------------- 4 "..

교차 검증 모델을 학습하면서 교차 검증을 하는 이유는 무엇일까. 이유는 바로 과적합(Overfitting)의 문제를 보안하기 위해서 이다. 과적합 문제는 모델학습 과정에서 항상 주의를 해야 하는 문제로 훈련 데이터에만 모델이 치중하여 학습을 하면 실제 데이터를 가지고 예측을 하였을 때 성능이 떨어지는 문제를 말한다. 그렇다면 교차 검증 방식은 어떻게 작용할까? 교차 검증 방식은 데이터 편중을 막기 위해서 학습 데이터 세트를 가지고 학습 데이터와 검증 데이터 세트를 또한번 나눠서 실제 학습을 하기 이전에 1차 평가를 하는 방식이다. 그렇게 된다면 최종 학습을 하기 위해서 모델의 최적화를 학습 이전에 가능하다. K-Fold K-Fold 교차 검증 방식은 가장 보편적으로 사용되는 교차 검증 기법이다. K-Fo..

https://seungwoni.tistory.com/30 Deep Learning(딥러닝) Intro 머신러닝 분야를 공부를 시작하면서 자연스럽게 접하게 되었던 딥러닝 분야 공부를 항상 미뤄왔다가 이번 여러 대회를 참가하면서 비정형 데이터들의 분류와 예측하는 대회들이 유행하고 seungwoni.tistory.com 단층 퍼셉트론 그림 1. 에서 퍼셉트론의 구조를 간단하게 표현을 해놨다. 그림 1을보면 , x1에 w1부터 xn에 wn까지의 값이 있는데 w(Weight)는 가중치라고 보면 됩니다. 컴퓨터의 판단 없이 실제 있는그대로의 Data 가 X값이며, W값은 가중치 혹은 보정치가 되는 값이라고 보면 됩니다. w값도 4개이고, x의 값도 네개이니, 위 개념도는 즉 x1w1, x2w2, x3w3, x4w..
What is TF-IDF TF-IDF는 NLP 분야에 거 가장 흔하게 사용하는 방식으로 텍스트들이 나열되어있는 데이터에서 단어의 빈도수를 기준으로 하여서 한 단어가 그 문장에서 얼마나 수학적으로 중요한지 가중치를 나타내는 방식이다. 한 문장에서 한 단어의 빈도가 높으면 높을수록 이 TF 값은 커지고 여러 문장에서 한 단어의 빈도수가 높아면 IDF 값이 줄어드는 형식으로 이 두 값 TF, IDF를 곱한 것을 결과로 도출한다. 즉 한 문장에서 자주 사용되는 단어는 중요하다 판단하지만 다른 문장에서도 흔하게 사용하면 중요하지 않다고 단어를 판단하는 알고리즘이다. Mathematical Formula of TF-IDF 단어의 빈도를 나타내는 이 알고리즘은 결과값을 여러 가지 방식으로 산출한다. 먼저 총빈도수를..

Label encoding(레이블 인코딩) 데이터 예측 모델을 훈련 하가 위해서 많은 머신러닝 알고리즘은 문자열 데이터 형식을 지원하지 않는다. 그래서 모든 문자열 값은 인코딩 돼서 숫자 형으로 변황이 되어야 한다. 문자의 종류는 연속적인 값인 수치형 데이터와 범주형 데이터가 있다. 범주형 데이터들은 예측값과 연관성을 분석해보면 예측하려 하는 컬럼과 연관성이 있다면 수치형으로 바꾸는 레이블 인코딩 방식을 사용하여 데이터를 바꿔 주어야 하지만 범주형 데이터에서도 식별자의 특징을 띄는 범주형 데이터는 오히려 예측 성능을 덜어 뜨리기도 한다. 식별자의 특징을 가지는 범주형 데이터는 예를 들어 주민번호, 아이디 같은 한 행이 다른 행과 다른 것을 식별이 가능한 테이터를 말한다. from sklearn.prepr..

Intro 머신러닝 분야를 공부를 시작하면서 자연스럽게 접하게 되었던 딥러닝 분야 공부를 항상 미뤄왔다가 이번 여러 대회를 참가하면서 비정형 데이터들의 분류와 예측하는 대회들이 유행하고 있어서 딥러닝 분야를 공부를 시작을 해보았다. What is Deep Learning 딥러닝 분야는 항상 최신 트렌드 산업과 기술에서 꾸준히 등장하고 있는 분야이다. 이런 딥러닝 분야는 이제까지 공부한 머신러닝 알고리즘 중 하나인 인공신경망(Artificial Neural Network)으로 만들어진 알고리즘을 말하며 큰 틀에서 본다면 머신러닝 분야라고 할 수 있다. 퍼셉트론(Perceptron) 인공 신경망 알고리즘을 사용하는 머신러닝 분야중 한가지인 딥러닝의 초기 모델이 퍼셉트론이다. 퍼셉트론에 대하여 이야기하기전에 ..