충남대학교

AI/MachineLearning

[ML] Deep Neural Networks

이 글은 충남대학교 양희철 교수님의 수업을 듣고 작성한 글입니다    1. Deep Neural networks(DNN) Hidden Layer를 늘리면 사람의 뉴런처럼 더 많은 레이어를 가지기 때문에 비선형 문제에 대해서도 좋은 성능을 보인다. (레이어를 늘림 => 가중치, 파라미터 수 증가 => 더 복잡한 문제 해결 가능) 따라서 DNN은 아주 큰 크기로 나아간다.   앞에서 히든 노드 수를 늘려도 근사하게 따라갈 수 있다는 universal approximation theorem에 대해서 배웠었다. 그럼 히든 레이어를 늘리는 것과 히든 레이어의 노드 수를 늘리는 것의 차이는 무엇이고 뭐가 더 좋을까? 더보기 => 하나의 히든 레이어에 노드 수를 많이 두는 것은 근사하게 따라갈 수 있으나 너무 비효율..

AI/MachineLearning

[ML] Neural Networks

이 글은 충남대학교 양희철 교수님의 수업을 바탕으로 작성한 글입니다   1. Neural Network 신경망 구조로 뉴런들을 많이 연결시켜서 신호를 전달한다. 신경의 전달 과정을 수학적으로 모방(신경에 전달되는 값이 변화를 일으키며, 즉 weight가 곱해져서 전달하는 머신러닝 모델의 가장 일반적 형태이다  x1, x2에 적절한 weight가 곱해진 값을 다 더하면 0보다 크냐, 작냐를 물어보고 0(decision boundary)보다 크면 1, 작으면 -1이다의 함수로 모델링한다. 이러한 구조는 가장 linear한 경계를 가지는 분류 모델이다  좀 더 일반화해서 나타내보자  i개의 feature가 있고 각각에 대해서 가중치를 곱해주고 bias가 더해진다. 이를 가중합이라고 한다. 이 가중합을 함수를 ..

AI/MachineLearning

[ML] Ensemble method

이 수업은 충남대학교 양희철 교수님의 수업을 듣고 작성한 글입니다.    이전 시간까지는 어떤 머신러닝 알고리즘이 있는지, 이들이 어떻게 사용되고 어떤 장단점이 있는지에 대해 주로 학습하였다. 이번 시간에는 이들의 성능을 높일 수 있는 방법에 대해 알아보자      본격적으로 알아보기 전에 앙상블이 뭐하는 것이고, 어떻게 진행되는지를 간략하게 한번 보자. 이해하기 쉽게 Q&A 방식으로 보도록 하자.    앙상블이란 하나의 문제를 풀기 위해 여러 개의 모델을 활용하는 것에 초점을 두고 있다.   Q. 여러 개의 모델은 어떻게 얻을 수 있을까요?더보기A. Data의 feature 중 일부를 랜덤하게 추출 => model 하나를 생성 => 다시 data의 feature 중 일부를 랜덤하게 추출 => model..

AI/DeepLearning

[DL] Performance Optimization

결과적으로 우리가 만든 모델의 성능이 잘 나와야한다. 우리는 CPU/GPU에 관한 내용을 제외하고 알아보도록 하자.    1. 성능 최적화  # 데이터를 사용한 성능 최적화● 많은 데이터를 수집한다. ● 임의의 데이터를 생성한다. ● 데이터의 범위를 조정한다. ex) sigmoid 사용 시 데이터셋의 범위 0~1, 하어퍼볼릭 : -1 ~ 1   # 알고리즘을 이용한 성능 최적화  k-NN, RNN, LSTM, GRU ... 우리가 배운 머신러닝, 딥러닝 알고리즘들 등등   # 알고리즘 튜닝을 위한 성능 최적화● 가장 많은 시간이 소요된다. ● 모델을 하나 선택하여 훈련시키려면 하이퍼파라미터를 변경하면서 훈련시키고 최적의 성능을 도출한다.1. 진단  2. 가중치  3. 학습률  4. 활성화 함수  5. 배..

AI/DeepLearning

[DL] LSTM & GRU & 양방향 RNN

RNN은 가중치가 업데이트 되는 과정에서 기울기가 1보다 작은 값이 계속 곱해지기 때문에 기울기가 사라지는 기울기 소멸 문제가 발생한다. 이를 해결하기 위해 우리는 확장된 모델을 사용한다.     1. LSTM 기울기 소멸 문제를 해결하기 위해 망각 게이트, 입력 게이트, 출력 게이트라는 새로운 요소를 은닉층의 각 뉴런에 추가한다.  # 망각 게이트● 과거 정보를 어느정도 기억할 지 기억한다.● 과거 정보와 현재 데이터를 입력받아 시그모이드를 취한 후 그 값을 과거 정보에 곱한다.● 시그모이드의 출력이 0이면 과거 정보는 버리고, 1이묜 과거 정보는 온전히 보존한다.● 0~1 사이의 출력 값을 가지는 이전 입력층에서 입력받은 h(t-1)과 새로운 입력 값인 xt를 입력 값으로 받는다.    # 입력 게이..

AI/DeepLearning

[DL] RNN

CNN은 이미지에 대해 적용되었다. 그렇다면 이미지가 아닌 단어, 문장 같은 건 어떻게 해야지?   1. RNN RNN은 시간적으로 연속성이 있는 데이터를 처리하려고 고안한 것이다! 이때 기억이라는 것을 이용한다. 기억이란 현재까지 입력 데이터를 요약한 정보를 말한다. 따라서 새로운 입력이 네트워크로 들어올 때마다 기억을 조금씩 수정한다. 최종적으로 남겨진 기억은 모든 입력 전체를 요약한 정보이다. => 사람과 굉장히 유사하지 않은가? 사람도 새로운 정보를 알게되면 이전에 알고 있던 것에서 이를 추가하지 않는가!  위의 그림에 대해서 짧게 설명하겠다.● 첫번째 입력(x1)이 들어오면 첫번째 기억(h1)이 만들어진다. ● 두번째 입력(x2)이 들어오면 기존 기억(h1)과 새로운 기억을 참고하여 새 기억(h..

CS/Operating System

[OS] Overview

이 글은 충남대학교 최훈 교수님의 운영체제 수업 및 자료를 바탕으로 작성한 글입니다  1. OS란?컴퓨터 응용 프로그램이 실행되는 과정에서 컴퓨터 하드웨어들을 제어하고 응용 프로그램 실행 결과를 보일 수 있도록 컴퓨터 내부 동작을 관리하는 소프트웨어이다. 운영체제 내부에서 운영체제가 어떻게 동작한다라는 것을 이해하면 나중에 응용 프로그램을 구현할 때도 효과적으로 어플리케이션이 더 빨리, 안전하게 돌아가는 프로그램을 구현할 수 있기 때문이다!! 따라서 우리는 OS를 배워야 한다!!   # OS의 기능1. Process management 2. Process scheduling 3. I/O device management 4. Booting  : 보조기억장치에 들어가 있는 운영체제를 실행할 수 있도록 컴퓨터..

AI/DeepLearning

[DL] 시계열 분석

흔히 주식 예측 프로그램, 물가 예측 프로그램을 만들었다는 이야기를 들을 수 있다. 그렇다면 시간에 따라 변하는 데이터를 어떻게 예측할 수 있을까?   1. 시계열 문제 시계열 분석이란 시간에 따라 변하는 데이터를 사용하여 추이를 분석하는 것이다. 주가 변동, 환율 변동, 기온 및 습도 변화 등이 대표적인 시계열 분석이다. 즉, 추세를 파악하거나 향후 전망 등을 예측하기 위한 용도로 시계열 분석을 사용한다. 시계열 형태는 데이터 변동 유형에 따라 불규칙 변동, 추세 변동, 순환 변동, 계절 변동으로 구분할 수 있다.● 불규칙 변동 : 시계열 자료에서 시간에 따른 규칙적인 움직임과 달리 어떤 규칙성이 없어 예측 불가능하고 우연적으로 발생하는 변동을 의미한다. 예를 들면 전쟁, 홍수, 화재, 지진, 파업 등..

AI/MachineLearning

[ML] Decision Tree

이 수업은 충남대학교 양희철 교수님의 수업내용을 바탕으로 작성한 글입니다   1. Decision Tree 어떤 결정을 내리는데 있어서 트리 구조로 결정을 내리는 것이다. IF-THEN 룰에 따라서 질문을 계속하면서 어떤 경계에 따라 계속 가지를 뻗는다. 쉽게 이해하면 스무고개라고 생각하자!=> 리프 노드의 어떤 결과가 나오도록 하는 방법을 알고리즘 형태로 정리한 것이 바로 의사 결정 트리이다    Decision Tree의 큰 특징이 무엇일까?      1. Recursive한 partitioning 2. 어떤 축에 대해 orthogonal partitioning을 한다. 3. Greedy method : 판단하는 시점에 어떤 경계를 가지는 것이 최적이냐를 판단한다. => 모든 case들을 다 고려해서..

AI/MachineLearning

[ML] Nearest Neighbor Method

이 수업은 충남대학교 양희철 교수님의 수업을 듣고 작성한 글입니다    1. K-nearest neighbor classifier (k - NN) 가장 직관적이고 쉬운 분류 알고리즘이다. K개의 근접한 이웃 데이터를 보고, 새로운 데이터의 분류를 판단한다. 즉, 가장 비슷한 애들이 나를 설명한다! 주변 데이터와의 거리를 측정하여 이를 기반해서 분류하므로 데이터를 직관적으로 활용 가능하다.   k-NN을 관통하는 가장 중요한 단어는 바로 '거리'이다   # Distance feature의 개수는 차원을 의미하고 가장 근접한 k개의 데이터를 보고 판단한다. 우리가 거리를 구하기 위해서는 data를 벡터 스페이스에 표현해야한다!   거리는 어떻게 구할 수 있을까?    # Manhatten distance D..

Cho대뿟다
'충남대학교' 태그의 글 목록