[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기
반응형

분류 전체보기 495

[알고리즘 연습] 중복되지 않는 수 찾기

중복되지 않은 하나의 숫자 찾아내기 숫자들의 배열이 주어진다. 배열은 2n - 1의 크기를 가지며 1부터 n까지의 숫자로 이루어져 있다. 모든 숫자가 2번씩 나타나지만 하나의 숫자만 한번 나타난다. 해당 수를 찾아라. 풀이 def findSolo(nums): nums.sort() for i in range(0, len(nums), 2): if (nums[i] != nums[i + 1]): return nums[i] return 0 def main(): print(findSolo([1, 5, 3, 1, 2, 6, 4, 5, 2, 6, 3])) 배열을 정렬후 (NlogN) 반복문으로 2개씩 넘어가면서 체크한다. 다음 인덱스의 값과 다른 경우 해당 값을 리턴한다.

Keras Embedding (워드 임베딩)

원핫 벡터는 희소하고 고차원이라는 특징이 있다. 이에 반해 워드 임베딩을 통해 만들어진 벡터는 저차원이며 실수형이다. 원핫 벡터는 보통 20000차원 이상인데 반해 워드 임베딩 벡터는 256~1024차원으로 더 많은 정보를 적은 차원에 저장할 수 있다. 다른 작업에서 사전 훈련된 워드 임베딩을 사용할 수도 있고, 관심 대상인 문제로 직접 워드 임베딩을 구할 수도 있다. Embedding from keras.layers import Embedding # Embedding 층 embedding_layer = Embedding(1000, 64) Embedding이라는 층을 통해 워드 임베딩을 진행할 수 있다. 단어 인덱스를 밀집 벡터로 매핑하는 딕셔너리로 임베딩이 수행된다. 첫번째 파라미터는 토큰 갯수(단어 ..

Keras Tokenizer (단어 인덱스 부여 및 원-핫 인코딩)

Tokenizer 원-핫 인코딩 : 각각의 항목을 벡터차원으로 하고, 표현하고 싶은 항목의 인덱스에 1의 값을 다른 인덱스에는 모두 0을 표기하는 벡터 표현 방식이다. 원-핫 벡터 : 이렇게 표현된 벡터 keras의 Tokenizer 메소드로 이를 간단하게 변환할 수 있다. from keras.preprocessing.text import Tokenizer samples = ['The cat sat on the mat.', 'The dog ate my homework.'] # 가장 빈도가 높은 1,000개의 단어만 선택하도록하는 Tokenizer 객체 tokenizer = Tokenizer(num_words=1000) # 그에 맞게 단어 인덱스를 구축 tokenizer.fit_on_texts(sample..

TensorFlow 텐서플로우를 이용한 딥러닝

데이터 준비하기 import tensorflow as tf import numpy as np data = np.random.sample((100,2)) labels = np.random.sample((100,1)) # numpy 기반 데이터 활용 dataset = tf.data.Dataset.from_tensor_slices((data,labels)) # batch는 총 32개 dataset = dataset.batch(32) 특성 파라미터 2개를 가지고 종속값은 1개인 100개의 데이터를 생성하여 활용한다. 예시를 위한 랜덤 데이터셋이기 때문에 사실 실질적인 관계성을 찾기란 불가능에 가깝다. (학습용으로만 사용) batch 전 : batch 후 : Keras 딥러닝 모델을 만들기 위한 고수준 API 요..

TensorFlow 텐서 초기화

텐서 : 딥러닝에서는 그냥 '다차원 배열'의 의미로 받아들여도 된다. numpy 배열과 비슷하다. GPU와 같은 가속기 메모리에 상주할 수 있다. 이러한 텐서 데이터들이 서로 연산을 주고 받으며 흘러가면서 계산된다. 일반적으로 텐서는 불변성(immutable)이다. 생성 이후 변경할 수 없다. 상수 텐서 초기화 import tensorflow as tf # 값이 일정한 텐서 선언 tensor_a = tf.constant(value, dtype=None, shape=None, name=None) # 모든 값이 value tensor_a = tf.zeros(shape=None, name=None) # 모든 값이 0 tensor_a = tf.ones(shape=None, name=None) # 모든 값이 1 ..

[scikit-learn 라이브러리] KMeans (K-Means)

K - 평균 (K - means) 구현이 쉽고, 다른 군집 알고리즘에 비해 효율이 좋아 인기가 많은 알고리즘이다. 학계와 산업현장 모두에서 활용된다. 프로토 타입 기반 군집(각 클러스터가 하나의 프로토타입으로 표현됨)에 속한다. 프로토 타입 : 연속적 특성에서는 비슷한 데이터 포인트의 centroid(평균) / 범주형 특성에서는 medopid(가장 자주 등장하는 포인트) 몇개의 군집을 설정할 것인지 정해야한다는 다소 주관적인 사람의 판단이 개입된다. (K값 결정) K - 평균의 과정 1) 데이터 포인터에서 랜덤하게 k개의 센트로이드를 초기 클러스터 중심으로 선택한다. 2) 각 데이터를 가장 가까운 센트로이드에 할당한다. 3) 할당된 샘플들의 중심으로 센트로이드를 이동시킨다. 4) 클러스터 할당이 변하지 ..

[scikit-learn 라이브러리] PCA를 사용한 차원축소

주성분 분석 : PCA (Principal component analysis) 고차원의 데이터를 저차원으로 줄이기 위해 사용된다. 예를 들어 시각화를 진행하려고 할 때 우리는 13차원의 데이터를 시각화할 수 없다. 따라서 해당 데이터의 차원을 줄여서 확인해야만 한다. 필연적으로 데이터 손실이 일어나지만 이를 최소화한다. 혹은 고차원에 존재하면서 생긴 노이즈를 없애면서 데이터를 정제하는 일도 가능하다. 정규화와 사이킷런 라이브러리 활용 def normalize(X): for i in range(X.shape[1]): X[:, i] = X[:,i] - np.min(X[:,i]) X[:, i] = X[:,i] - np.max(X[:,i]) return X 데이터 행렬 X를 받고 그를 정규화하여 리턴하는 함수이..

단층 퍼셉트론 - 선택 분류 구현

https://inuplace.tistory.com/460?category=912534 단층 퍼셉트론 - 회귀분석 구현 데이터를 기반으로 전복의 고리수를 예측하는 단층 퍼셉트론을 구현해보자. 주어진 데이터는 'Sex', 'Length', 'Diameter', 'Height', 'Whole weight', 'Shucked weight', 'Viscera weight', 'Shell weight', 그리.. inuplace.tistory.com 이전에 작성한 코드 중 일부를 재활용한다. 철판 데이터를 분석해 철판 상태를 7가지로 분류한다. 수업에 사용된 코드를 분석한 자료입니다. 메인 함수 정의 def steel_exec(epoch_count=10, mb_size=10, report=1): load_stee..

단층 퍼셉트론 - 선택 분류

선택 분류 문제의 신경망 처리 선택 분류 문제는 몇 가지 정해진 후보 가운데 하나를 골라 답하는 문제이다. 선택 분류는 후보 항목이 여러개이기 때문에 처리 방법이 조금 다르지만, 이진 판단과 비슷한 점이 많다. 이진 판단과 유사하게 각 후보 항목에 대해 로짓값을 추정하도록 구성된다. 퍼셉트론 하나가 후보 하나에 대한 로짓값을 출력하기 때문에, 선택 분류를 수행하려면 후보 수만큼의 퍼셉트론이 존재한다. 이진 판단과 달리 로짓값을 0으로 간주하던 암묵적 요소는 없다. 이진 판단에서 배웠던 교차 엔트로피 개념이 선택 분류에도 적용된다. '소프트맥스' 함수와 그를 통해 도출된 확률값을 기반으로 '소프트맥스 교차 엔트로피'를 구하고 이를 활용해 학습을 진행한다. 소프트맥스 함수 소프트..

순환신경망 - LSTM 기초

순환신경망 (Recurrent Neural Network, RNN) RNN은 입력과 출력을 시퀀스 단위로 처리하는 모델이다. 번역기를 생각해보면, 입력에 사용되는 데이터인 문장도 결국 단어의 시퀀스이고 출력도 단어의 시퀀스이다. 이러한 시퀀스를 적절하게 처리하기 위해 고안된 모델들을 시퀀스 모델이라고 한다. RNN은 그 중 기초가 되는 모델이라고 할 수 있다. 기존에 알던 신경망처럼 단순히 은닉층에서 출력층 방향으로만 값이 전달되는 것이 아니라, '메모리 셀'이라는 특수한 은닉층이 존재하여 이전의 값을 기억하는 일종의 메모리 역할을 수행한다. 이러한 메모리 셀은 다음시점의 자신에게 'hidden state'라고 불리는 특수한 값을 전달해 활용할 수 있도록 한다. 참고 : https://wikidocs.n..

반응형