728x90 분류 전체보기429 Google Solution Challenge 2024 - Voice-Bridge Review 약 한달반간의 팀원과의 협업의 결과로 Voice Bridge라는 농인을 위한 양방향 통역 어플을 완성하였다. 간단한 소개는 아래의 2분짜리 데모영상에 나와 있다. https://youtu.be/2Yceyr7ussU 우리 팀의 깃허브 링크이다. 프론트 파트 1명 ,백엔드 파트 1명, 인공지능 파트 2명이서 열심히 지지고 볶아서 완성된 프로젝트이다. 내가 모은 팀원들이 모두 고생하여 완성을 해내서 기특하단 말을 해주고 싶다. https://github.com/GSC-voice-linker VOICE LINKER Communication App for the Deaf. VOICE LINKER has 4 repositories available. Follow their code on GitHub. .. 2024. 2. 28. Google ML crash course (9) 특성 교차 특성 교차는 두 개 이상의 특성을 곱하여 (교차하여) 구성되는 합성 특성이다. 특성 조합을 교차하면 이러한 특성이 개별적으로 제공할 수 있는 것 이상의 예측 기능을 제공할 수 있다. 위와 같은 상태에서 선형 모델로 구분을 해내는 것은 불가능하다. 이떄 x1과 x2의 곱인 x3을 추가적인 feature로 이용하면 곱이 양수인 blue dot과 곱이 음수인 red dot을 구분해낼 수 있다. 선형 모델로 비선형성을 학습 시킬 수 있는 것이다. 이렇게 다른 변수의 곱으로 합성 특성을 만드는 과정을 일반적으로 특성 교차 곱이라고 부른다. 특성 교차와 대량의 데이터 사용은 매우 복잡한 모델을 학습할 수 있는 효율적인 전략 중 하나이다. 원-핫 벡터 교차 지금까지는 두 개의 개별 부동 소수점 특성을 특성.. 2024. 2. 19. Pandas(5) 인덱싱 pandas의 인덱싱에 대해서 알아볼 것이다. 레이블기반 인덱싱, 정수기반 인덱싱, 앞에서 또는 뒤에서 n행 인덱싱, 멀티 인덱싱에 대해서 차근차근 알아보자. 레이블기반(스칼라) 기본적으로 DataFrame.at의 형태를 띈다. at 함수는 loc 함수와 같이 레이블 기반으로 인덱싱을 하지만, DataFrame과 Series에 상관없이 하나의 스칼라값에 접근한다는 차이가 존재한다. 행/열 한쌍에 대한 단일 값에 엑세스한다는 특징이 있다. 사용법은 아래와 같이 단순하게 이용할 수 있다. 값 가져오기 : result = df.at['행', '열'] 값 설정하기 : df.at['행', '열'] = value 예시 먼저 아래와 같이 기본적인 2x2 행렬을 만든다. df = pd.DataFrame([[1,.. 2024. 2. 4. 딥러닝 직접 구현하기 - (word2vec 보충) 확률적인 관점 우선 CBOW 모델을 확률적인 개념을 적용하여 개선을 해보고자 한다. 확률의 표기법을 간단히 살펴보자. 확률의 표기법을 간단하게 살펴보자. 확률은 P(.)이라고 한다. A의 확률은 P(A)라고 표기한다는 것이다. P(A,B), A와 B가 동시에 일어날 확률을 말한다. P(A|B), 사건이 일어난 후의 확률 즉 사후확률인데 이는 다시 말해서 B라는 정보가 주어졌을 때, A가 일어날 확률을 말한다. 그럼 CBOW 모델을 확률 표기법으로 기술해보자. CBOW 모델이 하는 일은, 맥락을 주면 타깃 단어가 출현할 확률을 출력하는 것이다. 이번에는 아래와 같이 말뭉치를 w1, w2, w3, .... wt로 단어 시퀀스를 표기하고 t번째 단어에 대해 윈도우 크기가 1인 맥락을 고려하도록 하자. 이를 w.. 2024. 2. 4. 딥러닝 직접 구현하기 - (word2vec 학습) 학습 데이터 준비 word2vec에서 이용하는 신경망의 입력은 맥락이다. 그리고 정답 레이블은 맥락에 둘러싸인 중앙의 단어, 즉 타깃이다. 우리가 해야 할 일은 신경망에 맥락을 입력했을 때 타깃이 출현할 확률을 높이는 것이다. 말뭉치에서 맥락과 타깃을 만드는 작업을 진행해보자. 우선 말뭉치 텍스트를 단어 ID 로 변환해야 한다. import sys sys.path.append('..') from common.util import preprocess text = 'You say goodbye and I say hello.' corpus, word_to_id, id_to_word = preprocess(text) print(corpus) print(id_to_word) 그런 다음 단어 ID의 배열인 corp.. 2024. 2. 2. 딥러닝 직접 구현하기 - (word2vec) 단순한 word2vec 지금까지 살펴본 모델을 신경망으로 구축하도록 하자. 사용해볼 신경망은 word2vec에서 제안하는 CBOW(continuous bag-of-words)모델이다. CBOW 모델은 맥락으로부터 타깃을 추측하는 용도의 신경망이다. 타깃은 중앙 단어이고, 그 주변 단어들이 맥락이다. 이 CBOW 모델이 가능한 한 정확하게 추론하도록 훈련시켜서 단어의 분산 표현을 얻어내는 것이 목표이다. CBOW 모델의 input은 맥락이다. 따라서 맥락을 one-hot 표현으로 변환하여 CBOW 모델이 처리할 수 있도록 한다. 위 그림은 CBOW 모델의 신경망이다. 입력층이 2개 있고, 은닉층을 거쳐 출력층에 도달한다. 두 입력층에서 은닉층으로 변환은 똑같은 FCN이 처리한다. 그후 은닉층에서 출력층 뉴.. 2024. 2. 1. 딥러닝 직접 구현하기 - (추론 기반 기법) 추론 기반 기법 지금까지 통계 기반 기법으로 단어의 분산 표현을 얻었는데, 이번에는 더 강력한 기법인 추론 기반 기법을 살펴보자. 추론 기반 기법의 추론 과정에서 신경망을 이용하는데 여기서 word2vec 이 등장한다. 우선 통계 기반 기법과 마찬가지로 추론 기반 기법도 그 배경에는 분포 가설이 있다. 통계 기반 기법의 문제점을 알아보고 그 대안인 추론 기반 기법에 대해서 알아보자. 통계 기반 기법의 문제 통계 기반 기법에서는 주변 단어의 빈도를 기초로 단어를 표현했다. 정확히는 동시발생 행렬을 만들고 그 행렬에 SVD를 적용하여 밀집벡터 즉 단어의 분산 표현을 얻었다. 그러나 실제로 다뤄야하는 말뭉치의 어휘 수는 너무 많다. SVD를 n X n 행렬ㄹ에 적용할때 시간 복잡도는 O(n^3)이다. 말뭉치의.. 2024. 2. 1. Pandas(4) 함수 연속 적용 (축별) agg메서드는 apply와 비슷하게 함수를 적용하는 메서드이지만, 여러개의 함수를 동시에 적용할 수 있다는 장점이 있다. 또한 __name__을 통해 사용자정의 함수명을 따로 설정할 경우 그 이름을 사용한다는 점을 활용하여 함수를 사용한 DataFrame을 보다 깔끔하게 정리하는데도 용이하게 쓸 수 있다. 기본 형태는 다음과 같고 df.agg(func=None, axis=0, args, kwargs) 그 요소를 살펴보면 아래와 같다. func : 함수이다. axis :{0 : index(row) / 1 : columns} 축이다. (0은 행, 1은 열) arg : 함수의 인수이다. kwargs : dict 형태의 함수의 인수이다. 예시 먼저 간단한 3x3짜리 데이터를 만들어보자... 2024. 1. 31. 강화학습 - (BellmanOptEq) Optimal Policy 우선 매 상태마다 적합한 policy들이 존재할 텐데 이때 아래와 같이 optimal policy가 존재한다는 것을 전재로 한다. 1. 어떤 마르코프 결정 과정에 대해서도, 모든 다른 정책보다 좋거나 같은 최적 정책 π*이 존재한다. 2. 모든 최적 정책은 최적 가치 함수를 달성한다. 3. 모든 최적 정책은 최적 행동-가치 함수를 달성한다. 최적 정책 π*는 주어진 상태 s에서 가장 높은 가치를 가지는 행동 a를 선택한다. 이를 수학적으로 표현하면 아래와 같다. 최적 상태-가치 함수 v는 주어진 상태 s에서 가능한 모든 행동 a에 대해 최적 행동-가치 함수 q의 최대값을 취한다. 수학적으로는 아래와 같이 표현할 수 있다. Bellman Optimality Equation 특정한.. 2024. 1. 31. 이전 1 ··· 12 13 14 15 16 17 18 ··· 48 다음 728x90