문서의 선택한 두 판 사이의 차이를 보여줍니다.
2018_08 [2018/08/17 08:28] ehmoon |
2018_08 [2021/04/13 06:54] |
||
---|---|---|---|
줄 1: | 줄 1: | ||
- | ===== 01일 수요일 ===== | ||
- | [Research] | ||
- | |||
- | 논문세미나 준비 | ||
- | |||
- | 목차를 | ||
- | |||
- | 1. Introduction | ||
- | 2. Content Extraction in HTML Document | ||
- | 3. Measures for Evaluating Content Extraction | ||
- | 4. Framework Design | ||
- | 4.1. Test Packages | ||
- | 4.2. Architecture | ||
- | 4.3. Output Format | ||
- | 5. Performance of Extraction Algorithm | ||
- | 6. Related Work | ||
- | 7. Conclusions and Future Work | ||
- | |||
- | 로 잡고, 3. Measures for Evaluating Content Extraction 까지 만듬. | ||
- | |||
- | 여기서 발표 자료의 순서를 잡는데 고민이 생김. | ||
- | |||
- | 사실 이 논문을 읽은 목적이자 가장 중요한 부분이기도 한데, | ||
- | |||
- | content extraction의 evaluating에서 아무리 precision, recall을 사용한다고 해도 | ||
- | |||
- | scoring의 metric을 뭘로 하고 있는지가 매우 중요함. | ||
- | |||
- | 이 부분을 먼저 설명할지 나중에 설명할지 고민. | ||
- | |||
- | 일단 논문상에 순서로는 나중에 설명하고 있어서 발표자료에도 뒤로 뺌. | ||
- | |||
- | 이 부분은 발표자료 다 만들고 나서 다시 생각해봐야할 문제. | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 02일 목요일 ===== | ||
- | |||
- | 휴가 | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 03일 금요일 ===== | ||
- | |||
- | 휴가 | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 06일 월요일 ===== | ||
- | |||
- | [Research] | ||
- | |||
- | 논문세미나 준비 | ||
- | |||
- | 4. Framework Design 부분 발표자료 만듬. | ||
- | |||
- | 이 논문에서 디자인한 프레임 워크가 그림같은건 없고 전부 글로 되어있어서 | ||
- | |||
- | 직접 설명 자료만드는데 시간이 소요됐음. | ||
- | |||
- | 테스트 데이터를 모으는 과정이나 메타데이터 정의하는 부분, 아키텍쳐에서 | ||
- | |||
- | proxy server 사용하여 병렬처리하는 부분 등 그림으로 그리는데 살짝 복잡했음. | ||
- | |||
- | 내일은 비교 대상으로 사용된 CE 알고리즘 논문들 타고 내려가서 설명자료 만들어야 함. | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 07일 화요일 ===== | ||
- | |||
- | [Research] | ||
- | |||
- | 논문세미나 준비 | ||
- | |||
- | 5. Performance of Extraction Algorithm 부분 survey 함. | ||
- | |||
- | 논문에서 제시하고있는 CE 알고리즘은 Crunch, BTE, DSC, LQF로 총 4개. | ||
- | |||
- | BTE나 DSC는 워낙 유명한 논문이라 어느정도 파악이 되는데 Crunch는 | ||
- | |||
- | 관련 자료가 너무 안나옴. 차라리 이 알고리즘은 주제로 논문이 제대로 하나 | ||
- | |||
- | 있으면 좋을텐데 약간 프레임워크같은 개념이라 동작 원리에 대해 명쾌하게 | ||
- | |||
- | 설명하는 문서가 없음. | ||
- | |||
- | 그래도 레퍼런스 타고 들어가서 관련 서적 찾음 (50페이지짜리) | ||
- | |||
- | 그 외에 BTE, DSC, LQF 관련해서 동작 과정 정리하고 발표자료 만듬. | ||
- | |||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 08일 수요일 ===== | ||
- | |||
- | [Research] | ||
- | |||
- | 논문세미나 준비 | ||
- | |||
- | 5. Performance of Extraction Algorithm 부분 발표자료 수정하고 | ||
- | |||
- | 6. Related Work / 7. Conclusions and Future Work 부분 마무리 함 | ||
- | |||
- | 이 분야에서 related work가 많지 않다보니까 related 라는 단어를 사용하기 | ||
- | |||
- | 민망할 정도로 비교가 명확하지 않음. | ||
- | |||
- | 그래도 논문에서 그렇다고 하니까 발표자료는 만듬. | ||
- | |||
- | conclusion으로는 논문에서 제시하는 내용과 (자신들의 프레임워크가 매우 성공적이라고 함) | ||
- | |||
- | 내 견해를 정리함. | ||
- | |||
- | 텍스트를 중심으로 비교하기 때문에 이 프레임워크는 이미지가 주요 컨텐츠인 웹페이지를 대상으로는 | ||
- | |||
- | 올바른 비교결과를 얻지 못함. | ||
- | |||
- | 또한 구조적인 정보에 대한 가중치가 너무 없다는 것도 문제점 중에 하나임. | ||
- | |||
- | 내가 논문쓸때는 이런 점 잘 기억해놨다가 반영해야겠다는 생각을 함. | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 09일 목요일 ===== | ||
- | |||
- | [Research] | ||
- | |||
- | 논문세미나 준비 | ||
- | |||
- | 논문세미나 발표자료 완성하고 연습 및 최종 정리 | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 10일 금요일 ===== | ||
- | |||
- | [Study] | ||
- | |||
- | 논문세미나가 끝나고 나니까 다시 개발할 의욕이 매우 떨어짐. | ||
- | |||
- | 일단 이 상태로는 개발 진행 어려울것 같아서 인공지능 공부하던거 조금 진행. | ||
- | |||
- | 지난번 진행한 내용은 텐서플로우 기본 지식과 linear regression의 개념까지 했음. | ||
- | |||
- | 이 부분들도 시간이 오래 지나서 가물가물하다보니 다시 복습하고 | ||
- | |||
- | 다음 강의내용인 multi feature를 사용하기 위한 linear regression 부분 공부함. | ||
- | |||
- | 텐서플로에서 feature는 거의 한 가지일 수가 없기 때문에 multi feature를 다루는 방법을 알아야 함. | ||
- | |||
- | 이 테크닉은 linear regression 뿐만 아니라 어떤 machine learning 또는 deep learning | ||
- | |||
- | 방법을 사용해도 마찬가지임. | ||
- | |||
- | multi feature를 사용하려면 matrix를 사용해야 하고 feature와 output lable의 개수에 따라 | ||
- | |||
- | W값의 shape을 정하는 것이 매우 중요함. | ||
- | |||
- | 강의에서 제공해주는 예제는 퀴즈와 중간고사 점수를 이용하여 기말고사 점수를 예측하는 내용인데 | ||
- | |||
- | 여러개의 feature를 사용하니까 신기하게 예측이 됨. | ||
- | |||
- | 1기 2기때 학부 조교하면서 뽑아낸 학생들 점수로 한번 예측해봐야 겠다는 생각이 듬. | ||
- | |||
- | 추가로 data set을 외부 파일로부터 가져오는 방법에 대한 설명도 들음. | ||
- | |||
- | 파이썬의 numpy 모듈을 사용하는 내용이였고, | ||
- | |||
- | 사용하는 batch 기능까지 설명을 들음. shuple 기능도 있고 나중에 빅데이터 보유했을때 | ||
- | |||
- | 응용하면 좋겠다는 생각을 함. | ||
- | |||
- | 오늘로 linear regression 부분은 학습 완료했고, | ||
- | |||
- | classification 부분임. 이 부분들도 학부 수업때 많이 듣긴 했었지만 구현해본 경험은 없음. | ||
- | |||
- | 이론 지식 뿐만 아니라 텐서플로우로 구현까지 해보면 좋을것 같음. | ||
- | |||
- | 다음주부터는 매일 조금씩이라도 꾸준히 진행해야 함. | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 13일 월요일 ===== | ||
- | |||
- | [Study] | ||
- | |||
- | 모두를 위한 머신러닝 lecture 5. logistic regression 과 lecture 6. softmax classification | ||
- | |||
- | 공부. 로지스틱 회귀는 binary classification 이라고도 불리며 0 또는 1 2가지의 결과로 labeling | ||
- | |||
- | 하고 싶을때 사용되는 machine learning 기법임. 내용은 복잡할것 같지만 의외로 간단함. | ||
- | |||
- | linear regression과 마찬가지로 선형 방정식 y = Wx + b를 세워두고, | ||
- | |||
- | 이용하여 0에서 1사이의 값을 얻어낼 수 있도록 모델링하면 끝. | ||
- | |||
- | 결과값은 0에서 1사이의 값으로 나타나게 되고 threshold 적절히 설정해 주어 결과만 분류하면 | ||
- | |||
- | binary classifier로 사용 가능함. | ||
- | |||
- | softmax classification 같은 경우는 multiple labeling이 가능한 다중 classification 기법. | ||
- | |||
- | sotfmax 라는 확률 기반의 activate 함수를 사용하여 여러개의 label을 기준으로 분류할 수 있음. | ||
- | |||
- | 대신 이 함수를 사용하려면 one hot incoding 방식을 사용해야함. 즉, labeling이 한개만 1이고 | ||
- | |||
- | 나머지는 0인 깨끗한 data로 정제되어 있어야 함. | ||
- | |||
- | 텐서플로우에서는 이런 기능 제공해주는 함수들이 무지 많이 존재함. | ||
- | |||
- | [Research] | ||
- | |||
- | 얼마 전에 발표했던 논문에 자극을 받아 평가 프레임워크 개발 진행하기로 함. | ||
- | |||
- | 논문에서는 텍스트 기반의 비교방식만 사용하고 있지만 나는 면적과 dom 노드 비교 기반의 평가 | ||
- | |||
- | 프레임워크를 개발해야 함. 정답 set은 생성했고 (약간의 정제 과정이 필요하지만) 정답률을 자동으로 | ||
- | |||
- | 계산해주는 프로그램 개발해야 함. | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 14일 화요일 ===== | ||
- | |||
- | [Study] | ||
- | |||
- | 모두를 위한 머신러닝 lecture 7. ML의 실용과 몇가지 팁 부분 공부 | ||
- | |||
- | 이번 챕터는 약간 짬뽕같은 느낌. 정리를 하자면 | ||
- | |||
- | (1) running rate | ||
- | |||
- | (2) Overfitting | ||
- | |||
- | (3) Regularization | ||
- | |||
- | 먼저 running rate같은 경우는 학습을 할때, 너무 러닝 rate을 너무 크게 잡으면 | ||
- | |||
- | overshooting 발생하여 데이터값이 위로 튀어버리고, | ||
- | |||
- | 가 너무 느리게 돌아가므로 트레이닝이 끝났을때 optimal value를 찾아가지 못함. | ||
- | |||
- | 따라서 제대로 cost 값이 측정이 안된다면 running rate 의심해봐야 함. | ||
- | |||
- | 다음으로 overfitting 부분은 트레이닝을 많이 시킨다고 다 좋을것 같지만, | ||
- | |||
- | 오히려 너무 많은 트레이닝은 트레이닝 데이터에 의존되므로 좋지 못함. | ||
- | |||
- | overfitting을 해결하는 방법으로는 3가지가 있음. | ||
- | |||
- | (1) training data의 양을 늘림 | ||
- | |||
- | (2) feature의 개수를 줄임 | ||
- | |||
- | (3) regularization | ||
- | |||
- | regularization은 feature 끼리의 분포가 너무 크거나 작을때 cost function을 그려보면 | ||
- | |||
- | 찌그러져버리는 현상이 생기는데 이때 사용하는 방법. | ||
- | |||
- | 모든 feature들의 range를 같은 범주로 정규화 시켜서 평평한 모양의 cost function을 만들어줌. | ||
- | |||
- | lecture는 이정도 진행했고, | ||
- | |||
- | 텐서플로에서 제공하는 mnist 데이터 이용하여 image classification 실습해봄. | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 15일 수요일 ===== | ||
- | |||
- | 공휴일 | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 16일 목요일 ===== | ||
- | |||
- | [Study] | ||
- | |||
- | 모두를 위한 머신러닝 lecture 8. 딥러닝의 기본 개념 lecture 9. MNL과 Backpropagation | ||
- | |||
- | 본격적인 Deep Learning 부분에 접어 듬. 학부 및 석사 수업시간에 배울때보다 훨씬 깊이 | ||
- | |||
- | 들어가서 이해하는데 시간이 걸렸지만 원론적으로 따라가다보니 이런 내용이었구나 신기함을 | ||
- | |||
- | 느낌. 요약하자면, | ||
- | |||
- | 이 방법은 선형 모델을 따르기때문에 XOR같은 비선형 문제는 해결하지 못함. | ||
- | |||
- | 그래서 해결책으로 제시된 방법이 다층 Layer를 설계하는 것. | ||
- | |||
- | 근데 이 역시도 문제가 있는게, 기존의 단층 Layer 모델에서는 신경망의 가중치를 학습시킬때 | ||
- | |||
- | cost function을 minimal 하게 optimization 하는 방향으로 일종의 learning 을 진행해 | ||
- | |||
- | 나갔었는데 다층 신경망이 되니, 각각의 perceptron에서의 미분 값 (즉, 각각의 perceptron들의 | ||
- | |||
- | 가중치가 최종 output에 얼마나 영향을 끼치는지의 정도)를 구하는데에는 막대한 계산량이 필요함. | ||
- | |||
- | 이유는 각 layer의 노드들끼리 input과 output이 연결되있는 구조 탓에 미분 값을 구하려면 | ||
- | |||
- | chain rull에 의해 이전 cost function의 결과 값을 알아야 하기 때문. | ||
- | |||
- | 그러나 이 한계를 가능하게 한 이론이 등장했는데, | ||
- | |||
- | 발견했고, | ||
- | |||
- | Backpropagation 알고리즘. 이름 그대로 각 Layer의 가중치 값들을 역전파 시키면서 갱신해나가는 | ||
- | |||
- | 방법. 이 방법은 뒤로 돌아올때 이미 계산해 놓은 미분값을 다음 뉴런에서 바로 이용할 수 있으므로 | ||
- | |||
- | chain rull의 한계를 교묘하게 넘어갈 수 있음. | ||
- | |||
- | 아무튼 이런 이론적인 바탕아래, | ||
- | |||
- | 신경망이 구현 가능해짐. | ||
- | |||
- | 내일부터는 DNN 관련 코딩 실습해보고 나머지 진도 진행해야 함. | ||
- | |||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | |||
- | ===== 17일 금요일 ===== | ||
- | |||
- | [Study] | ||
- | |||
- | 모두를 위한 머신러닝 lecture 9. Backpropagation 실습 lecture 10. DNN Breakthrough | ||
- | |||
- | 어제 이론수업듣고 중간에 멈춘 9장 실습 진행. 이 전에는 1 Layer의 뉴런으로 학습하여 문제를 | ||
- | |||
- | 해결했었고, | ||
- | |||
- | 이 모델이 성능이 좋을것 같지만, XOR 문제를 (비선형적인 문제) 학습하여 돌려보면 accuracy가 | ||
- | |||
- | 엉망이 됌. 이유는 하나의 뉴런으로는 선형문제를 해결할 수가 없기때문. (물론 요즘에는 커널 | ||
- | |||
- | 알고리즘이라고 해서 차원을 늘려 위아래로 쪼개는 방법도 나왔다고 하지만 단순히 뉴런을 이용한 | ||
- | |||
- | 모델에서는 해결할 방법이 없다는 것이 명백히 증명되었음) | ||
- | |||
- | 이 문제를 해결하기 위해 뉴런을 하나 더 늘리고 (Layer를 늘리고) W의 input개수와 output개수를 | ||
- | |||
- | 잘 맞춰서 돌려보니 높은 accuracy 나옴. 그리고 tensorflow 노드들의 값이 변하는 과정을 | ||
- | |||
- | 찍어보는 방법으로 tensorbord 사용하는 방법도 실습해 봄. | ||
- | |||
- | 다음으로는 10장 DNN의 Breakthrough에 대해 강의를 들었는데, | ||
- | |||
- | DNN의 연구적인 흐름을 알아야 함. | ||
- | |||
- | 먼저 MIT AI Lab의 창립자였던 Minskey 그리고 Papert가 저서를 통해 현재의 퍼셉트론으로는 | ||
- | |||
- | XOR 가 절대 불가능하다라는 것을 수학적으로 증명함. 그뿐아니라 하나의 퍼셉트론이 아닌 MLP | ||
- | |||
- | (Multilayer Perceptron)을 통해서 XOR는 해결될 수 있지만, 각각의 weight와 bias를 학습시킬 | ||
- | |||
- | 방법이 없다라는 결론에 이르게 됨. 즉 이건 절대 해결할 수 없다고 저술하였고, | ||
- | |||
- | 이 책을 읽고 공감하게 됨. 그렇게 딥러닝의 빙하기가 약 10년간 이어지다가 딥러닝의 대부 | ||
- | |||
- | Geoffrey Hinton이 이 문제를 해결하는 논문을 발표함. 이게 그 유명한 Backpropagation | ||
- | |||
- | 알고리즘. activation function을 sigmiod로 사용하고, | ||
- | |||
- | 영향력을 미분으로 계산해냄으로써 모든 뉴런들의 W와 b를 계산해냄. 중요한 부분은 이 과정에서 | ||
- | |||
- | 앞의 계산 결과를 뒤의 연산에서도 사용하므로 계산량의 부담이 절감된다는 것. | ||
- | |||
- | 이후로 큰 선풍을 얻고 많은 연구가 진행되다가 두번째 빙하기가 찾아옴. | ||
- | |||
- | DNN의 길이가 길어지면 Backpropagation연산을 할때 input layer와 가까운 부분의 뉴런들이 | ||
- | |||
- | 학습이 되지 않는 현상이 발생. 이유는 sigmiod function이 값이 작아질 경우 0에 가까운 값을 | ||
- | |||
- | 곱해버리게 되니까 앞에서 밀려오던 weight 정보들이 손상되어버리는 것. | ||
- | |||
- | 이를 vanishing gradient 문제라 부름. | ||
- | |||
- | 그로부터 약 10년 뒤 이 문제를 해결하는 방법으로 Geoffrey Hinton이 유명한 breakthrou 논문을 | ||
- | |||
- | 발표. 지금까지의 DNN이 제대로 학습되지 않았던 이유를 4가지 꼽으면서 해결책을 제시 | ||
- | |||
- | 대표적인 예로는 w값들의 초기화 문제와 activation function 사용의 문제를 듬. | ||
- | |||
- | 10장에서는 이러한 연구 과정을 정리하면서 문제가 됐던 코드를 실행해 봄. | ||
- | |||
- | 여기서 tensorflow 에 큰 매력을 느낀게, 최신 논문들에서 제시한 다양한 알고리즘 및 | ||
- | |||
- | 딥러닝 모델들이 그대로 구현되어있고, | ||
- | |||
- | DNN 모델 만들어놓고 mnist 데이터로 성능이 향상되는 과정 보면서 매우 흥미로웠음. | ||
- | |||
- | 다음주 부터는 딥러닝의 꽃인 CNN과 RNN에 대해 본격적으로 시작해야 함. | ||
- | |||
- | 연구가 많이 밀리고있지만, | ||
- | |||
- | 생각임. 빨리 끝내고 연구와 함께 개발 진행하면 좋을것 같음. |