AI가 가져올 미래에 대해 이같은 진단을 내놓은 이는 IBM의 롭 토마스 데이터·AI 총괄사장이다. IBM은 이미 1997년 인공지능 컴퓨터 '딥블루'를 개발해 체스 세계 최고수를 꺾었고, 2011년에는 인공지능 '왓슨'으로 유명 퀴즈쇼에서 역대 인간 퀴즈왕을 모두 이겼다. IBM은 현재 AI 분야에서 전 세계에서 가장 앞선 기업 중 하나로 꼽힌다.

사람들은 AI가 일자리를 대체할까봐 불안해 한다. 이 인터뷰를 보면 AI가 인간을 대체하는 것이 아니라 AI를 업무에 활용하는 직원, 활용하는 기업이 AI를 활용하지 못하는 직원과 기업을 대체하는 것이라고 말한다. 이는 시장 점유율, 시장 선도 기업이 AI 활용도에 따라 바뀔 수 있다는 것을 의미한다. 

나는 항상 AI 기업이 '데이터'를 어떻게 다루는 지에 대해 궁금했었다. 각 기업별로 이용하는 클라우드도 다를 것이고, 혹은 자체 보관을 할텐데 그 데이터들에 어떻게 접근하는지가 궁금했었다. 기업은 자신의 데이터를 외부로 내보내고 싶어하지 않는다는 것은 너무 당연한 사실일 것이다. IBM의 왓슨은 세계에서 유일하게 공용과 사설 데이터에 모두 설치할 수 있도록 만들어졌다고 한다. 왓슨의 활용도가 최근 높아진 것도 이 때문이라고 IBM의 데이터, AI 총괄사장은 말한다.

여기서 야기되는 나의 의문은 왜 다른 기업의 AI는 그렇게 개발되지 않았냐는 것이다. 왓슨 외의 다른 AI를 찾아봐야할 것 같다.

 

 

 

원문 보기:

http://www.koreadaily.com/news/read.asp?art_id=7214638

 

[단독] '꼬깔콘 100만 봉지 대박, 그 뒤엔 AI 왓슨 있었다'

━ IBM 인공지능 총괄 사장 롭 토마스 단독 인터뷰 인공지능(AI) 등장으로 인류는 역사상 경험하지 못한 비즈니스 확장 기회를 맞고 있다, 그렇다 해도

www.koreadaily.com

 

 

음성합성은 실제 사람 목소리를 활용해 인공음성을 만들어 내는 기술이다. 이용자가 녹음한 음성 파일을 기계가 딥러닝 방식으로 학습해 문장을 따라읽는다. 음소 단위로 학습하는 것이 아니라 어절 단위로 기계가 문장을 통째로 학습하기 때문에 억양도 익힐 수 있다. KT 관계자는 "딥러닝 방식이 적용돼 적은 문장으로도 음성합성이 가능하고 문장 맥락에 따라 억양을 자연스럽게 만들 수 있다"고 말했다. 

이미 많은 정보가 있는 연예인뿐만 아니라 일반인의 목소리도 구현해낼 수 있다는 것이 큰 메리트인 것 같다. 딥러닝 방식으로 소량의 데이터로도 일상 회화가 가능한 정도로 학습할 수 있는 것이다.

부모님이 돌아가시기 전에 일상 생활을 '영상으로 찍어놔라, 전화를 녹음해놔라' 이런 조언을 많이 들을 수 있는데 이러한 음성합성 기술을 통해 학습을 미리 해놓으면 좋을 것 같다.

 

 

 

원문 보기:

https://www.mk.co.kr/news/business/view/2019/05/354975/

 

"어, AI스피커에서 엄마 목소리가 나네?" - 매일경제

짧은 문장 목소리 녹음하면 인공지능이 스스로 음성합성 `내 목소리처럼` 책 읽어줘 가상 앵커·낭독 서비스까지

www.mk.co.kr

 

07-2. 이상한 데이터를 찾아라! - 이상치 정제하기

이상치(Outlier)란?

- 정상 범주에서 크게 벗어난 값

 

이상치 제거하기 - 존재할 수 없는 값

1. 이상치가 포함된 데이터 생성 (sex는 1과 2만 나올 수 있고, score는 1부터 5까지의 값만 들어갈 수 있음)

4행의 sex와 6행의 score에 이상치 확인 가능

 

2. 이상치 확인하기

table(outlier$sex)
table(outlier$score)

 

3. 결측 처리하기 - 이상치를 결측치로 변환, ifelse()를 이용해 이상치일 경우 NA 부여

#sex가 3이면 NA 부여
outlier$sex <- ifelse(outlier$sex == 3, outlier$sex)

4행의 sex 값이 NA로 변환

# score가 5초과면 NA 할당
outlier$score <- ifelse(outlier$score > 5, NA, outlier$score)

6행의 score 값이 NA로 변환

4. 결측치 제외 후 성별에 따른 score 평균 구하기

outlier %>%
	filter(!is.na(sex)&!is.na(score)) %>%
    group_by(sex) %>%
    summarise(mean_score = mean(score))

 

 

(출처; 쉽게 배우는 R 데이터 분석, 김영우)

07-1. 빠진 데이터를 찾아라! - 결측치 정제하기

결측치(Missing Value)란?

- 누락된 값, 비어 있는 값을 의미

 

결측치 찾기

1. 결측치 가진 데이터 프레임 만들기

df <- data.frame(sex=c("M","F",NA,"M","F"), score=c(5,4,3,4,NA))

2. 결측치 확인하기 - is.na() 사용하기 (결측치는 TRUE, 결측치가 아닌 값은 FALSE로 표시)

is.na(df)

is.na()를 사용해 결측치 확인

3. 데이터에 결측치가 몇 개 있는지 출력 - is.na()를 table()에 적용

table(is.na(df))

4. 결측치가 존재하는 변수 확인

 

 결측치 제거

1. 결측치 있는 행 제거하기 - '행'이므로 is.na()를 filter()에 적용

df %>% filter(is.na(score))

2. score의 값이 NA가 아닌 행들 출력

df %>% filter(!is.na(score))

3. 추출한 데이터로 데이터 프레임을 만들면 결측치가 없는 데이터가 생성됨

df_nomiss <- df %>% filter(!is.na(score))  #score 결측치 제거
mean(df_nomiss$score)  #score 평균 산출
sum(df_nomiss$score)  #score 합계 산출

결측치 없는 데이터

 

cf) na.omit() 을 이용하면 변수를 지정하지 않고 결측치가 있는 행을 한 번에 제거

df_nomiss2 <- na.omit(df)

na.omit()는 결측치가 하나라도 있으면 모두 제거하기 때문에 간편하게 쓸 수 있지만 분석에 필요한 데이터가 일부 손실된다는 단점이 있음. 따라서 filter()를 이용해 분석에 사용할 변수의 결측치만 제거하는 방식을 권함.

 

함수의 결측치 제외 기능 이용하기

** mean()과 같은 수치 연산 함수들은 결측치를 제외하고 연산하도록 설정하는 na.rm 파라미터를 지원한다. na.rm을 TRUE로 설정하면 결측치를 제외하고 함수를 적용하기 때문에 결측치를 제거하는 절차를 건너뛰고 곧바로 분석할 수 있다. 하지만 모든 함수가 na.rm을 지원하는 것이 아니기 때문에 filter()로 결측치를 제거한 후에 함수를 적용하는 순으로 작업해야 한다.

1. na.rm() 파라미터 사용

mean(df$score, na.rm=T)  #결측치를 제외하고 평균 산출
sum(df$score, na.rm=T)  #결측치를 제외하고 합계 산출

2. summarise()도 na.rm 적용 가능

exam<-read.csv("csv_exam.csv")
exam[c(3, 8, 15), "math"] <- NA

summarise()에 mean()과 sum(), median() 함수를 불러온 다음 na.rm을 사용해서 결측치를 제외하고 값을 구함.

exam %>% summarise(mean_math = mean(math, na.rm = T),
		sum_math = sum(math, na.rm = T),
        median_math = median(math, na.rm = T))

mean_math sum_math median_math
 55.23529      939          50

 

 

 결측치 대체하기

1. 앞에서 만든 exam 데이터에서 3, 8, 15행의 math는 결측치. 이 값들을 평균값으로 대체하기 위해 먼저 math의 평균값을 구해보자.

mean(exam$math, na.rm = T)

결측치 제외한 math 평균, 약 55

 

2. 결측치를 평균값으로 대체 - ifelse()를 이용해 NA값을 평균값으로 대체 (math가 NA면 55를 입력하고 그렇지 않으면 원래의 값을 그대로 둠)

exam$math <- ifelse(is.na(exam$math), 55, exam$math)
table(is.na(exam$math))

math의 결측치가 55로 수정됨

 

 

 

(출처; 쉽게 배우는 R 데이터 분석, 김영우)

+ Recent posts