coursera

Beam search algorithm 주어진 input x에 대해 다음에 등장할 수 있는 예측값 하나만을 뽑았던 greedy search와 달리, Beam search algorithm은 해당 시점에 다음으로 등장할 확률이 가장 높은 것 B개를 뽑습니다. 이것은 일종의 hyper-parameter로 상황에 따라 다른 값을 부여할 수 있고, 이를 beam width라고 부릅니다. 맨 처음 골랐던 세 단어를 기준으로 또 세 개씩 뽑습니다. 각각의 확률을 구하는 방식은 완전히 동일하게 반복됩니다. 어떤 단어가 뽑혔을 경우, 이것을 포함한 것이 조건으로 들어가고, 이때 다음으로 등장할 확률이 가장 높은 B개를 추출하게 됩니다. 이를 문장이 끝날 때까지 반복하면 됩니다. 재밌는 것은 결국 한 개의 후보만 가지고..
Machine translation as building a conditional language model 지난 시간에 공부한 machine translation이 이전에 배운 language model의 구조와 유사한 부분이 있다는 것을 시각적으로 확인할 수 있습니다. machine translation에서는 input x가 예측값 y hat과 동시에 입력으로 들어가지 않는 다는 점을 제외하면 구조가 유사합니다. 그리고 이러한 구조를 'contional language model'이라고 부릅니다. input x라는 조건이 주어졌을 때, 예측값 y hat을 확률에 기반하여 예측하기 때문이죠. Finding the most likely translation 하지만 결국 확률의 문제이기 때문에, 주어진 조..
Sequence to sequence model 여러 개를 입력으로 받고 여러 개를 출력하는 형태의 sequence to sequence 모델의 대표적인 예는 machine translation입니다. 기계 번역을 위한 학습 방식에는 여러 가지가 존재하지만, 초기에는 위처럼 입력을 쭉 받고, 이후에 예측 결과를 생성하면서 이를 입력으로 다시 제공하는 방식을 취했습니다. Image captioning sequence to sequence를 image captioning에 응용한 예시입니다. 이미지에 대한 feature를 최종적으로 4096차원의 벡터로 표현하는 CNN 모델입니다. 원래는 이 벡터에 softmax를 적용하여 확률을 추출해내지만, 우리가 하고 싶은 것은 이미지에 적합한 문장을 생성하는 것이므로..
The problem of bias of word embeddings 인공지능 모델은 텍스트의 정보를 그대로 학습하기 때문에, 텍스트에 녹아 있는 편향적인 내용을 그대로 반영할 수도 있습니다. 가장 대표적인 예시는 위와 같이 성과 관련된 것으로, 남-여 : 프로그래머-주부 / 의사-간호사 등으로 구분하게 된 모델이 있었습니다. 사실 실제 사회상을 잘 반영하는 것으로 볼 수도 있지만, 악의적으로 편향된 학습을 하게 된 모델이 미칠 영향은 생각보다 클 수 있습니다. 인공지능에 대한 신뢰도가 높아질수록 의사결정에 더 큰 영향력이 행사될 수 있기 때문이죠. (참고로 여기서 언급하는 bias는 딥러닝 모델에서 흔히 언급되는 variance-bias와 의미상 차이가 있습니다) Addressing bias in wo..
Sentiment classification problem Sequence Model로 처리할 수 있는 대표적 태스크 중 하나인 sentiment classification(감성/감정 분류)입니다. 입력(X)을 문장으로 받고, 각 문장이 어떤 평점에 해당하는지를 정답(Y)으로 삼는 구조입니다. Simple sentiment classification model 따라서 단어(토큰)마다 임베딩을 추출하여 평균을 구하고, 여기에 softmax를 적용하여 예측값을 구합니다. 만약 한 문장 내에 감성에 영향을 줄 수 있는 표현이 여러 번 등장하는 경우(예시에서는 good), 평균값에 이 vector의 값이 제일 많이 반영될 것입니다. RNN for sentiment classification 위에서 설명한 것을 ..
Sorting applications Java system sorts 자바에도 정렬 함수가 내장되어 있습니다(파이썬도 당연히..! 심지어 성능도 좋아요). quick/merge sort 두 종류가 포함되어 있는데, 객체의 종류에 따라 다른 정렬을 사용한다고 합니다. 예를 들어 reference type에는 merge sort가 사용됩니다. 반대로 메모리가 적게 필요하고 in-place 변화가 적용되는 경우에는 quick sort가 사용됩니다. War story (C qsort function) Enginerring a system sort Tukey's ninther 중간값의 중간값을 고르는 방법을 제안한 학자입니다. 이 방식은 랜덤하게 값을 섞는것보다 구분 효과가 탁월하고 비용은 덜 소모한다고 합니다...