728x90

전체 글 24

[머신러닝] 활성화 함수의 종류

활성화 함수(Activation Function)의 종류 활성화 함수(Activation Function)란 입력 데이터(input data)의 가중치 합을 출력 신호(Output signal)로 변환하는 함수이다. 대표적인 활성화 함수는 ReLU, 시그모이드(Sigmoid)함수 등이 있다. 1. 시그모이드 함수(Sigmoid Function) S자형 곡선 또는 시그모이드 곡선을 갖는 함수이며, 계단함수(Step Function)의 단점을 보안해 준다. (계단 함수는 출력값이 0 또는 1의 값만 반환하고, 사이 값은 무시한다.) def logit(a): return 1 / ( 1 + np.exp(-a)) a = np.linspace(-5, 5, 200) plt.plot([-5, 5], [0, 0], 'k..

[머신러닝] 인공 신경망(ANN, Artificial Neural Network)

인공신경망(ANN, Artificial Neural Network) 인공신경망이란, 뇌에 있는 생물학적 뉴런(Neuron)의 네트워크에서 영감을 받은 머신러닝 모델이다. 인공신경망은 크게 2가지의 분류로 구별되며 아키텍쳐와 학습방법에 따라서 분류가 가능하다. 1. 아키텍쳐 기반에 따른 분류 퍼셉트론(Perceptron) : 가장 간단한 인공 신경망 구조 단층 퍼셉트론(Single-Layer Perceptron) 아래 그림과 같이 입력계층(Input-Layer)과 출력계층(Output-Layer)로만 이루어진 단순한 구조를 가진다. 다층 퍼셉트론(Multi-Layer Perceptron) 아래 그림과 같이 입력계층과 출력계층 사이에 은닉층(Hidden-Layer)가 있는 구조를 가진다. 은닉층이 2개 이상..

[머신러닝] 강화학습의 분류

강화학습(Reinforcement Learning) 학습하는 시스템을 에이전트(Agent)라 부르며 환경(Environment)을 관찰(Observation)해서 행동(Action)을 실행하고 그 결과로 보상을 받는다. 시간이 지나면서 가장 최적의 보상을 얻기위해 정책(Policy)이라 부르는 최상의 전략을 스스로 학습을 진행한다. 1. 배치 학습 & 온라인 학습 입력 데이터의 스트림으로부터 점진적으로 학습할 수 있는지에 따른 분류 배치 학습(Batch Learning) 시스템을 점진적으로 학습할 수 없고, 가용 데이터를 모두 사용하여 훈련 시간과 자원을 많이 소모하므로 보통 오프라인에서 수행 새로운 데이터에 대한 학습이 필요할 경우 전체 데이터를 사용하여 시스템의 새로운 버전을 처음부터 다시 훈련 많은..

[머신러닝] 강화학습

강화학습(Reinforcement Learning)? 인공지능의 방법론인 머신러닝(Machine Learning)의 한 종류 머신러닝은 크게 지도학습, 비지도학습, 강화학습으로 분류할 수 있다. 1. 지도학습(Supervised Learning) 데이터와 각 데이터의 레이블(lable)이 주어진 상태에서 새로운 데이터에 레이블을 매기는 방법을 학습 하는 것 Ex) A 지역의 아파트의 가격은 a원이고, B 지역의 주택의 가격은 b원 이라는 정보를 모델에게 알려준 다음 이 정보를 토대로 C 지역의 아파트의 가격은 c원일 것이다. 라고 예측하는 방식 (회귀 방식) 2. 비지도학습(Unsupervised Learning) 레이블 없이 데이터만 주어진 상태에서 데이터를 분류하거나 밀도를 추정하는 방법을 학습 하는..

[음성인식] MFCC

MFCC(Mel-Frequency Cepstral Coefficient) 음성 처리 또는 오디오 신호 처리 분야에서 널리 쓰이는 특징(Feature) 파라미터이다. MFCC는 여러 분야에서 활용이 된다. 예를 들어 음성 처리 분야에서는 화자 검증을 할 때 화자의 신원을 확인하는 방식으로 사용이 된다. 그리고 오디오 신호 처리 분야에서는 음악의 장르를 구별하는 방식으로 사용이 가능하다. MFCC를 기술적으로 설명하면 Mel-Spectrum(멜 스펙트럼) 에서 Cepstral(캡스트럼)분석을 통해 특징 값을 추출한다. 아래 그림은 FMCC의 추출 과정이다. 음성 신호를 작은 크기(20~40msec)의 프레임으로 쪼개어 고속 푸리에 변환(FFT, Fast Fourier Transform)을 적용해 스펙트럼을 ..

[Python] Lambda(람다) 사용법

Lambda(람다) 사용법 Lambda(람다) 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수를 지칭하는 용어이다. 함수를 따로 호출하지 않고 사용하는 방식으로 람다함수를 이용하면 코드도 간결해지고 효율적인 퍼포먼스를 기대할 수 있다. 그러나 람다 함수를 너무 남용하면 코드 이해도가 떨어지고, 방식에 따라서 오히려 속도가 느려질 수도 있다. 1. 사용법 lambda {인자} : {표현 식} 2. Example 우선 0에서 9까지 출력을 해보자 먼저 lambda식을 사용하지 않은 코드는 아래처럼 for문으로 작성할 수 있다. for number in range(10): print(number) lambda식을 사용하면 아래 코드와 같이 한줄로 작성할 수 있다. map(lambda x: x, rang..

Programming/Python 2021.12.24

[python] Anaconda에서 MNIST 실습하기

MNIST 데이터는 0 ~ 9 까지 손글씨로 이루어진 이미지 데이터 셋이다. MNIST Yann LeCun 웹사이트에서 제공해주고 설치가 가능하다. 1. MNIST Dataset 설치 MNIST in CSV (pjreddie.com) MNIST in CSV MNIST in CSV Here's the train set and test set. The format is: label, pix-11, pix-12, pix-13, ... where pix-ij is the pixel in the ith row and jth column. For the curious, this is the script to generate the csv files from the original data. def convert(i..

Programming/Python 2021.12.21

[환경설정] 아나콘다 설치

Anaconda3 설치 아나콘다(Anaconda)는 파이썬과 R프로그래밍 언어의 Package / 의존성 관리 및 배포를 편리하게 해주는 오픈 소스 SW이다. 1. Anaconda 다운로드 Anaconda 홈페이지 Anaconda | Individual Edition Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 해당 사이트에 들어가서 맨아래로 스크롤하다보면 아래와 같은 화면이 나온다. 자신의 OS와 bit버전을 확인후 맞게 설치하면 된다. 2. 설치 진행 순서 그림과 같이 따라서..

Setting 2021.12.21

[음성변조] x-vector를 이용한 화자 익명화 방법 (논문 Review)

x-vector를 이용한 화자 익명화 방법 음성 데이터에서 개인의 데이터를 공유하는 것은 보안 및 개인정보 보호문제에 있어서 많은 문제점이 있다. 뿐만 아니라 사용자의 음성 데이터를 획득하여 음성 합성 시스템(TTS)을 적용하여 화자의 음성 발언을 생성할 수 있고 범죄에 이용될 수도 있다. 그래서 음성 데이터를 공유하기 전에 화자의 신원을 숨기는 기술이 개발되었고, 이 기술이 바로 화자 익명화 기술이다. 1. 화자 익명화 시스템 구조 입력 음성에 대하여 음성 인식 (ASR, Automatic Speech Recognition)을 진행하고, 기본 주파수(F0, Fundamental Frequency)와 x-vector에 대한 특징을 추출하는 과정을 먼저 진행한다. 그런다음 DNN 기반의 ASR 시스템을 사..

[Linux] 데이터 전처리 시 유의 사항 (개행문자 제거)

데이터 전처리 시 유의사항 음성인식 또는 음성합성에 사용되는 데이터를 전처리 하는 과정에 있어서 windows에서 작업한 파일을 Linux에서 열 경우 간혹 개행문자 (^M) 가 입력되어 있을 때가 있다. Linux에서 개행문자 (^M)는 ctrl + v + M 로 입력하면 된다. 아래 예시와 같이 되어있을때 여러가지 방법으로 수정이 가능하다. $ cat -v test.txt test number1 ^M test number2 ^M test number3 ^M 1. VI 편집기에서 수정 # 한줄만 변경 :%s/^M// # 모든 줄 변경 :%s/^M//g 2. sed 명령어로 수정 sed -i 's/^M//g' test.txt 3. awk 명령어로 수정 # test1.txt 파일로 저장 awk 'sub(^..

Programming 2021.12.16
728x90