전체 글 8

[re] 라이브러리

re re는 Regular expression operation을 약자이다. 정규표현식을 이용한 문자열 매칭에 사용되는 Python 라이브러리이며, 파이썬 정규 효현식을 이용하여 문자열에서 [특정 패턴]의 문자열을 매칭하는 기능을 제공한다. 정규표현 식은 '.', '*', '$' 등의 특수문자를 이용한다. 특수문자 특수문자는 정규표현식을 표현하기 위한 의미를 가지는 문자를 말하며 아래의 표와 같다. 패턴설명예제 패턴 설명 예제 ^ 이 패턴으로 시작해야 함 ^abc : abc로 시작해야 함 (abcd, abc12 등) $ 이 패턴으로 종료되어야 함 xyz$ : xyz로 종료되어야 함 (123xyz, strxyz 등) [문자들] 문자들 중에 하나이어야 함. 가능한 문자들의 집합을 정의함. [Pp]ython ..

Programming 2020.03.21

[Argparse] 라이브러리

머신러닝, 딥러닝에서 가장 자주 사용 되는 라이브러리 중 하나인 Argparse 라이브러리에 대해 알아보록 하자. 아래의 그림은 딥러닝에 적용된 예시 코드이다. 아직 정확히 어떻게 작동 되는 것인지는 모르겠지만, parser.add_argument() 에서 lr(learning rate)를 설정하고 다음 줄에서 resume(저장 된 값들을 불러와 재 시작)하는 코드임을 짐작 할 수 있다. 이 코드들은 매우 유용한데, 만약 learning rate의 시작 값을 0.09로 바꿔 실행 하고 싶을때 코드 자체를 수정하는 것이 아닌, terminal 에서 실행 시 learning rate를 바꾸어 입력만 해주면 되기 때문이다. 먼저 import 부터 살펴 보겠다. import 는 argparse라는 라이브러리를 ..

Programming 2020.03.01

[논문 리뷰]ResNeXt

흔히 알고 있는 ResNet을 한 단계 성능을 향상시킨 논문을 소개 하겠습니다. ResNeXt라고 알려져 있는 네트워크의 논문 제목은 Aggregated Residual Transformation for Deep Neural Networks라는 제목으로 2017년 CVPR에 올라왔습니다. 1. Introduction 이 논문에서 소개하는 architecture의 구성 방식은 VGG와 ResNet이 사용하는 방식인 같은 layer들을 반복하는 것이다. 추가적으로 inception에서 사용되는 것과 비슷한 1개의 input을 여러 방향으로 쪼개는 split transform merge방식을 이용한다. Inception-ResNet과 다른 점은 각 path별로 같은 layer구성을 가지고 있다는 점이다. 이는..

논문 리뷰 2020.02.29

Network Implementation Details

데이터를 생성하고, 학습에 사용할 network를 만든 뒤에 세부적인 설정은 어떻게 하여야 하는것일까에대해 이번 포스트에서 다룰 것이다. Select last Layer of Network Select loss function Optimization 딥러닝 알고리즘에서 신경망의 마지막 layer에 사용하는 오차함수 및 활성화 함수의 종류는 다음과 같이 나타낼 수 있다. Problem Activation function Loss function Binary classification Sigmoid nn.CrossEntropyLoss() Multi class classification Softmax nn.CrossEntropyLoss() Multi label classification Sigmoid nn.C..

Machine Learning 2020.02.22

How to Reduce Overfitting?

머신러닝, 딥러닝에 있어서 빈번하게 일어나는 문제는 overfitting과 underfitting일 것이다. overfitting이란, 알고리즘이 train set에서는 잘 작동하지만 새로운 데이터인 valid set, train set에서는 제대로 작동하지 않을때 이 알고리즘은 overfitting 되었다고 할 수 있다. underfitting이란, 알고리즘이 train set에서부터 학습이 제대로 되지 않았다고 생각할 수 있다. 이는 현재 딥러닝 모델에서는 거의 일어나지 않는다. 기본적으로 network의 layer의 수가 많고, feature들이 어느정도 학습이 될 수 있기 때문이다. Network의 구조가 복잡해지고, deep 해질 수 록 Over fitting 현상이 많이 발생한다. 따라서 이번..

Machine Learning 2020.02.22

Introduction of ML

1. Introduction of Machine Learning 이번 포스트에서는 분류,회귀의 머신러닝 문제유형, 모델평가, 전처리 등에 대해 소개를 하겠습니다. 머신러닝의 유형 Supervised Learning Unsupervised Learning Reinforcement Learning 머신러닝에는 위와 같이 3가지의 유형이 있습니다. 유형별로 어떤 특징을 가지고 있고, 간단한 예를 살펴보도록 하겠습니다. 1.1 Supervised Learning 딥러닝과 머신러닝에서 유명한 모델들이나 성공한 대부분의 사례들은 대부분 supervised learning에 기반하였습니다. supervised learning의 예에는 어떤 것들이 있는지 보겠습니다. Classification : cat vs dog ..

Machine Learning 2020.02.22

Neural Network의 기초 - 2 with Pytorch

파이토치 딥러닝 알고리즘 구현하기 이번 포스트에는 아주 간단한 딥러닝 알고리즘을 구현하는 포스팅을 해 보겠습니다. 파이토치의 모든 네트워크는 CLASS형태로 개발이 됩니다. 네트워크를 구현하는 클레스는 nn.Module 클래스를 상속하게 되고, __init__ 초기화 부분과 forward의 forward propagation이 진행되는 매서드를 구현하여야 합니다. 아주 귀여운 네트워크입니다. 사실 위와같은 네트워크는 Deep learning이라고 불리기 민망할 정도이지만 한번 살펴 보겠습니다. CuteNetwork는 Linear layer와 ReLU 를 이용한 3층 네트워크입니다. 초기화 부분에서 어떤 layer를 사용할 것인지 self를 통해 인자를 받고, forward부분에서 네트워크의 순서대로 구현..

Programming 2020.02.21

Neural Network의 기초 with Pytorch

1. Basic Layer 아주 기초적인 neural network부터 시작해보겠습니다. 먼저 nn(neural network)에서 가장 기본적인 Linear layer 부터 보겠습니다. Linear layer는 입력데이터에 선형변환 을 한 후 결과를 출력하는 layer입니다. 여기서 선형 변환이란 일반적으로 이야기 하는 Y = Wx + b 를 나타냅니다. Y는 linear layer의 output이 될것이고, W는 가중치, x는 입력, b는 bias입니다. 이를 코드로 나타내 보면 아래와 같습니다. 이 코드에서 Linear라는 함수는 torch.nn 에 포함되어 있습니다. (torch.nn.Linear) Linear의 parameter를 한번 봅시다. Linear 함수는 크기가 10인 tensor를 입..

Programming 2020.02.21