인공지능 참고 자료

논문

기사

상관 분석

> data<-read.table(“D:/down/db.out.txt”, header=T, fileEncoding = “UTF-8”)
> # 표준화
> scale_data <- scale(data)
> # 상관분석
> cor_data <- cor(scale_data)
> # 데이터 파일로 Write
> write.table(cor_data, “d:/down/cor_data.txt”, sep=”\t”, row.names = FALSE, quote=FALSE, append=FALSE)

Conversation, Discourse, Dialog 차이

  평소 Conversation, Dialog, Discourse를 비슷한 의미에서 사용을 해왔었는데, 출처의 논문을 보니 차이가 나는 미묘함이 있었다.

짧게 요약하자면, Conversation의 의미는 미리 준비하지 않은 격식 없는 대화에 해당하며, Dialog는 목적을 가진 대화에 해당한다. 예를 들면, 영어 회화를 보면 제목이 있고 그 제목을 달성하기 위한 대화인 것이다. 마지막으로 Discourse는 우리 말로 담활고 하며, 이것은 발화들이 모여진 일종의 구조체이다. Discourse (담화)의 의미를 올바르게 파악하기 위해서는 언어적인 맥락(앞뒤 발화의 의미)은 물론 비언어적인 맥락 (상황 및 사회, 문화를 고려한 발화의 의미)까지 모두 고려해야 한다.

Conversation

  미국의 귀납적 대화분석론(conversation analysis; 줄여 서 CA라고 지칭함)에서 사용된 개념이다. 이 개념은 적어도 초기의 귀납적 대화분석론(CA)에서는 이웃 간의 담소나 인사 그리고 한담 등과 같이 비공식 적이고 사적이며 미리 준비하지 않은 즉흥적인 가벼운 의사소통의 유형을 지칭하는 것으로 사용되었다. 그러므로 공식적으로 이루어지는 법정대화나 수업대화와 같은 제도 내에서 이루어지는 유형의 의사사통은 대화(conversation)의 범주에 속하지 않은 것으로 간주되었다(Levinson 1993, 389). 그렇기 때문에 초기 대화분석론(CA)에서 가리키는 converation에 가장 근접한 한국어 용어는 ‘담소’일 가능성이 크다.

후기의 대화분석론(CA)은 법정대화나 수업대화 등과 같은 제도적 의사소통으로까지 대화분석 연구의 대상을 확장하였으므로(Goodwin/Heritage 1990, 284), 이제는 대화분석 (CA)의 관점에서도 conversation을 대화로 이해하여도 무방할 것이다.

Dialog

  독일의 연역법적 대화분 석자(또는 대화문법론자)들에 의해서 주로 사용되고 있다(dialog grammar (Hundsnurscher, 박용익(2010)). 연구 방법론적 관점에서 볼 때 대화문법 론은 귀납법적 대화분석론(CA)과 가장 극명한 대척점에 서 있다. 또한 대화 문법론은 연구의 대상도 귀납법적 대화분석론의 주 연구 대상인 담소나 수다 등과 같은 가벼운 일상의 대화가 아닌 목적 중심적 대화(수업대화, 법정대화, 의료대화 등)에 치중한다.

Discourse

  이 용어는 한국어로 ‘대화’로도 번역되지만, 언어학에서는 주로 ‘담화’로, 철학이나 사회학에서는 주로 ‘담론’으로 번역되어 사용되고 있다.

언어학에서 형식주의자들은 담화(discourse)를 문장보다 더 큰 또는 문장을 초월하는 언어단위로 정의하고, 기능주의자들은 담화를 구체적인 맥락과 상황 속에서 이루어지는 인간의 상호작용 속에서 이루어지는 언어 사용으로 정의한다.6)

한편 담화에 대한 형식주의적 개념 정의와 기능주의적 개념 정의가 혼합된 관점으로 담화는 발화(utterances)로 정의된다. 이때 발화는 특정 문맥 에서 사용된 문장으로 이해된다(Munthe 2008, Schiffrin 1994, 20).

이러한 이유로 discourse는 글말로 이루어진 언어단위, 즉 전통적으로 텍스트를 가리키기도 하고, 입말로 이루어지는 언어상호 작용인 대화를 가리키기도 한다. 그러므로 discourse analysis는 텍스트 언어학을 가리킬 수도 있고, 대화분석을 가리킬 수도 있으며, 경우에 따라서는 텍스트언어학과 대화 분석 모두를 가리킬 수도 있다.

한국의 언어학계에서 discourse(담화)는 귀납법적 대화분석 연구 학파인 미국의 대화분석론(conversation analysis)에 대별되는 유럽의 연역법적 대화분석 연구 학파(discourse analysis (Sinclair/ Coulthard 1975, Stubbs 1993))에서 다루는 언어 단위인 대화를 가리키는 말로 주로 사용된다.

출처

1. 텍스트와 대화 (박용익, 카톨릭대학교)
2. 담화-담화의 의미와 맥락, 통일성과 응집성

그라이스의 대화격률

그라이스의 대화 격률(Gricean maxims)은 자연스러운 대화가 이루어질 수 있도록 지켜져야 하는 대전제를 언어철학자인 폴 그라이스가 제안한 것이다.

협력의 원리

양의 격률필요 이상의 정보를 제공하지 말라.
A: 너 멏살이니?   B: 형보다 10살이 적으니까 19살이요. (X) / 19살이요 (O)

질의 격률 증거가 불충분하거나 거짓이라 생각되는 말은 하지 말라.
A: 체중이 얼마나 되세요?   B: 깃털만큼 가벼워요. (X)

관련성의 격률 목적 주제와 관련된 것을 말하라.
A: 잘 잤니?   B: 방금 일어났어요. (X) / (O)

태도의 격률 모호한 표현은 하지 말라.
A: 점심 뭐먹을까?   B: 아무거나 먹어요.

공손성의 원리

요령의 격률 상대방이 화자의 요구를 부담스러워하지 않도록 돌려말하거나 상대를 칭찬하라.
창문 좀 열자 —> 공기가 탁한데 잠깐 환기 좀 시킬까?

관용의 격률 상대방이 화자의 요구를 들어주도록 자신을 낮추어 말하라
조용해. 내일 시험있어. —> 미안한데, 집중력이 떨어져서 작은 소리도 신경이 쓰이는데 소리 좀 줄여줄 수 있을까?

칭찬의 격률 다른 사람에 대한 비방은 줄이고 칭찬을 극대화 하라
A: 이번에 산 옷 이쁘다. 정말 잘 어울려. B: 정말 고마워.

겸양의 격률 타인의 칭찬에 대해서 겸손하게 반응하라.
A: 선생님 감사합니다. 덕분에 이번에 수학 시험에 100점을 받았습니다.
B: 아니야. 네가 100점을 받을 정도로 정말 열심히 공부를 했구나. 정말 축하한다.

동의의 격률 자신의 의견과 다른 사람의 의견 사이의 다른 점은 최소화하고 일치점을 극대화하라
A: 오늘 대청소하자.
B: 좋지. 쾌적한 환경으로 만들어보자그런데 내가 요즘 허리가 아파서 병원을 다니는데, 대청소는 일주일만 미뤄도 괜찮을까?

IT 기업들은 기술 공개 중….

글로벌 IT 기업들은 현재 데이터와 기술을 제공함으로써 개방과 협력 관계를 통한 기술적 생태계 구축하려 하고 있으며, 오픈소스 전략을 통해서 인공지능 분야에서 영향력 확대하려고 하고 있다.

일본 소프트뱅크, 인간형 로봇 ‘페퍼’ 시판 (2015/06/20)

  • 일본 소프트뱅크의 인간형 로봇 판매를 계기로 인간형 로봇의 실용화 경쟁이 본격화되고 있다. 소프트뱅크는 로봇 사업을 위해 대만의 전자기기 수탁 제조업체인 훙하이(鴻海)정밀공업(팍스콘), 중국 최대 전자상거래 업체 알리바바 그룹과도 손을 잡았다. 두 회사는 소프트뱅크의 로봇 사업 자회사에 각각 20%를 출자했고 제조와 개발, 판매에 협력하기로 했다.소프트뱅크는 페퍼의 애플리케이션(응용 소프트웨어) 개발자들에게 미리 공급했으며,  일반인 상대로는 소프트뱅크 계열의 모바일 상점 2천700개와 인터넷을 통해 판매한다. 그리고 고객 서비스를 담당하는 기업용 로봇도 판매할 예정이며, 내년부터는 알리바바의 인터넷 쇼핑몰 등을 통해 전세계 판매도 나선다고 한다.

    인간형 로봇 실용화 History
    ▲ 1996년 = 혼다, 두 다리를 걷는 로봇 ‘아시모’ 프로토타입 발표
    ▲ 1999년 = 소니, 애완견 형태의 로봇 ‘아이보’ 발매.
    ▲ 2012년 = 소프트뱅크, 프랑스 로봇 기업 알데바란 인수
    ▲ 2013년 = 미국 구글, 도쿄 대학 로봇 벤처 및 보스턴 다이내믹스 등 인수
    ▲ 2014년 = 일본 돌보미 로봇 개발회사인 사이버다인, 도쿄증권거래소 마더스 시장 상장
    ▲ 2015년 = 소프트뱅크, 인간형 로봇 페퍼 일반 시판

삼성전자, 딥러닝 플랫폼인 ‘베레스(Veles)’ 공개 (2015/11)

  • 베레스는 딥러닝 응용 프로그램 개발을 위한 분산형 플랫폼이다. 개방형 범용 병렬 컴퓨팅 프레임워크인 ‘오픈(Open)CL’이나 GPU에서 수행하는 알고리즘을 C 프로그래밍 언어를 비롯한 산업 표준 언어를 사용해 작성할 수 있도록 하는 GPGPU 기술인 ‘쿠다(CUDA)’ 등을 사용하며, 파이썬 등을 통해 플로우 기반의 프로그래밍이 가능하다.

구글, 머신러닝 기술 ‘텐서플로오픈소스로 공개 (2015/11/9)

  • 텐서플로는 구글의 1세대 머신러닝 시스템인 ‘디스트빌리프’에 이은 2세대 시스템이다. 텐서플로는 스마트폰에서도 돌아갈 수 있고, 데이터센터에서 수천대의 컴퓨터를 기반으로 동작할 수도 있다. 현재 텐서플로는 검색, 구글 앱의 음성인식, 메일을 읽고 예시 답장을 제공하는 G메일 인박스의 ‘똑똑한 답장’ 서비스, 구글포토의 검색 등에 두루 적용돼 있다.

야후, 연구자를 위한 머신러닝 데이터 공개 (1/14)

  • 야후가 1월14일 머신러닝 연구자를 위한 13테라바이트(TB)의 예제 데이터를 무료로 공개했다. 이 예제 데이터는 야후의 2천만 사용자가 2015년 2월부터 5월까지 야후 뉴스피드에 보낸 정보이며, 뉴스, 스포츠, 파이넨스, 무비, 이스테이트 관련 데이터들이 포함돼 있다. 야후는 1.5TB 규모의 샘플 데이터를 따로 만들어 데이터 정보를 더 쉽게 볼 수 있도록 지원했으며, 샘플 데이터는 나이 성별, 지리 정보 등으로 분류됐다. 해당 데이터는 야후 계정이 있어야 내려 받을 수 있다.

바이두도 인공지능 기술 오픈소스로 공개 (1/14)

  • 중국 인터넷 업체인 바이두는 최근 자사 실리콘밸리 연구소에서 개발한 AI 소프트웨어인 WARP-CTC를 오픈소스로 공개했다고 발표했다. WARP-CTC는 바이두 엔드투엔드 언어 인식 프로그램인 딥 스피치2에서 언어 인식 기능 향상을 위해 활용됐다. 딥 스피치2에서 WARP-CTC 기능은 일부 영역에서는 사람보다도 나은 인식 역량을 보인다고 한다.

참고

Text에 대한 전처리 문제들

개인적으로 언어처리에서 중의성이 발생하는 이유는 다음과 같이 2가지 이유 때문으로 생각되며, 이러한 중의성을 해소하기 위해서 여러 통계 기법이 필요하고, 그로 인해서 자연어 처리 연구가 매우 어렵게 느껴지게 된다고 생각한다.

  • 문자는 한정되어 있으나 매핑할 사물 및 대상은 무한하기 때문에 이것을 모두 표현하기 위해서 어쩔 수 없이 중복이 발생하게 된다.
  • 같은 사물 및 대상이라도 개개의 사람들이 느끼는 감정 및 생각은 모두 다 다르기 때문에 같은 대상이라도 표현의 차이가 존재하게 된다.

Unstructured Text를 쉽게 다루기 위해서는 정형화된 포맷이 필요하며, 진행 중인 Goal에 맞도록 아래와 같이 다양한 case들을 다루어야 한다.

Apostrophe에 대한 처리

  • Korea’s capital -> Korea? Koreas? Korea’s?
  • What’re, I’m, isn’t -> What are?, I am?, is not?

Dash에 대한 처리

  • Hewlett-Packard -> Hewlett Packard?
  • State-of-the-art -> State of the art ?

복합명사에 대한 처리

  • Lowercase -> lower-case? lowercase? lower case?
  • 공중전화 -> 공중전화? 공중 전화?
  • 고장 신고 -> 고장신고? 고장 신고?
  • New York, San Francisco -> 하나의 token? 두개의 token?

대소문자 및 구두점에 대한 처리

  • M.p.h
  • phD, ph.D.,
  • U.S.A., USA
  • 0.2, 2.2%

대소문자에 대한 처리

  • m.p.h, mph -> miles per hour
  • M.P.H. -> Master of Public Health.
  • US -> US?, us?
  • Fed -> Fed? fed?

줄임말에 대한 처리

  • Inc.
  • Dr.

숫자에 대한 처리

  • 1544-7777
  • 343-1234

언어 모델 (Language Model)

언어 모델 (Language Model)에 의해서 현재 문장에 대한 확률을 구하거나 다음 단어를 확률에 근거해서 예측할 수 있다. Spelling을 체크하거나 기계 학습, 음성인식, 문장 요약 등 여러 가지 자연어처리 기술에서 활용되고 있다.

  • 예1) Spelling check에서 P(about fifteen minutes) > P(about fifteen minuets)
  • 예2) Speech Recognition에서 P(I saw a van) > P(eyes awe of an)

 

두 가지 현재 문장의 확률이나 다음 단어에 대한 확률은 아래와 같이 표현할 수 있다.

  • P(W) = P(w1, w2, w3, …, wn)
  • P(wn | w1, w2, …, wn-1)

 

여기서 이 문제를 풀기위해서는 먼저 chain rule을 적용한다.

P(w1, w2) = P(w1) * P(w| w1)
P(w1, w2, w3) = P(w1) * P(w| w1) * P(w| w1,w2)
따라서 P(W)는 P(w1) * P(w| w1) * P(w| w1,w2) * … * * P(w| w1,w2, …,wn-1) 와 같이 계산할 수 있다.

        chainrule

태어나서부터 모든 환경이 지금의 내가 되기까지 영향을 미치기도 하였지만, 더 중요한 것은 최근 출신 학교와 직장이 아닌 가 싶다. 이것과 비슷하게 언어 모델에서도 data sparseness도 해결할 겸 최근 몇 개 단어만 활용하고자 한다. 이것이 markov assumption이다.

markovassumption

여기서 만약, k=0이라면 unigram, 1이라면 bigram, 2라면 trigram에 해당한다.

markovassumption1

여기서 trigram의 경우 다음과 같이 estimation할 수 있다.

lm-evaluation

그리고 이것을 실제 계산하다 보면 2가지 문제에 부딛히게 된다.

  1. 문장이 길 경우 연속적인 소수의 곱셈에 의해 발생하는 underflow
  2. 연속적인 곱샘에 딱 한 항목이 0이 발생하면 허무한 값을 얻을 수 있다. trigram을 적용하더라도 우리는 data sparseness를 해결해야 한다. (smoothing)

 

underflow의 해결 방법

곱셈에 log를 취함으로써 덧셈으로 바꿀 수 있으며, 연산 속도도 높일 수 있다.

     P(X1) * P(X2) * … * P(Xn) = logP(X1) + logP(X2) + … + logP(Xn)

.

data sparseness 해결 방법

1. Laplace
        laplace

2. Linear Interpolation
         linearinterpolation