기본 콘텐츠로 건너뛰기

인공지능과 로봇 세상에 우리의 일자리를 위해 노력해야 할 것들...




요즘 국내는 머신러닝만 적용되어도 인공지능이라고 신문에 홍보한다.

실제 인공지능이 되려면 음성인식, 자연어처리, 영상인식, 그리고 실제 서비스가 필요하다.

머신러닝과 딥러닝은 일단 너무 속도가 느리기에 실시간 처리가 가능한 플랫폼이 필요하다.

알파고에는 브레인OS가 존재한데 우리는 알고리즘 얘기만 한다.

현재 자율주행차 수준은 초보적인 단계이지만 인공지능이 장착되는 수준으로 올라간다면 대단한 변화가 올 것이다.

일본 소프트뱅크는 페퍼와 왓슨을 이용해서 금융기관이나 피자집 등에 인공지능과 로봇이 만난 서비스를 진행 중이다.

한국에도 일이년내로 이런 서비스가 들어올 가능성이 높아진다.

제조업쪽만 로봇이 인간의 일자리를 차지하는 것만이 아니라 이제 서비스 산업에서 로봇이 인간의 일자리를 빼앗아간다.

미래의 직업을 선택하려면 로봇과 인공지능을 만드는 사람이 되어야 한다.

왜 미국에서 인문학, 수학, 물리학 등 기초 학문을 강조하는지를 잘 이해해야 한다.

알파고가 나온다고 우리는 컴퓨터공학과에 학생들이 몰리지만 실제 인공지능과 로봇을 잘 하려면 인문학, 수학, 물리학 등의 융합적인 공부를 해야 한다.

이제 우리는 기본부터 제대로 해야 하는 사람이 되어야 한다.





댓글

이 블로그의 인기 게시물

golang overload 처럼 처리하기

go 언어에서는 함수명이 같을 경우 재선언 오류를 발생시킨다.
다른 메소드를 만들고 오버로드 처리하도록 설계해서 구현해야 한다.
오버로드 처리를 위해 type switch를 사용해서 들어오는 타입에 따라 메소드 호출하는 처리를 사용한다.
함수나 메소드 인자를 다양하게 처리하려면 []interface{} 로 정의해서 다양한 인자를 받아서 오버로딩 처리하면된다.


package main
import (  "fmt" )
func main() {  var p Person  p = Person{"dahl"}
 var s string = "moon"
 fmt.Println(" overloading  ", p.Overload(s))  fmt.Println(" overloading", p.Overload(nil)) }
type Person struct {  name string }
func (this *Person) Overload(args interface{}) string {  switch args.(type) {  case string:   return this.GetName2("moon")  case nil:   return this.GetName1()  default:   return " no match"  } }
func (this *Person) GetName1() string {  return this.name }
func (this *Person) GetName2(s string) string {  return this.name
}


golang에서 인터페이스 Type Assertion 처리하기

인터페이스: Type assertion 
인터페이스를 이용하여 메소드가 아닌 일반 변수에 할당하며 변수에 정의된 타입들에 대해 명확히 구분할 수 있다.   
Var 변수명 interface{} 로 정의하면 일반 변수정의 타입들도 전달할 수 있다.      //구조체 정의 var a BB = BB{X:10} 
//Type assertion 정의 var value interface{} 
   // 할당    value = a     //value.(타입)     fmt.Println("  type assertion ", value.(BB))  //출력값 {10}
리턴값을 interface{} 즉 type assertion 을 처리하도록 정의 func weird(i intinterface{} { if i < 0 { return"negative"      } return i }
func main() {

golang 에서 generic 처리하기

go언어에서 제너릭 처리를 위해서는 아래처럼  인터페이스를 정의하고 각 타입별로 구현을 한다.

슬라이스에 각 타입으로 컨버전하여 값을 넣고 슬라이스 순번대로 호출하면 자신의 타입에 맞는 메소들를 호출하여 처리한다.




type Integer16 int16
type Integer32 int32

type Calculator interface {
Calculate()
}

func (i Integer16) Calculate() {
/* behavior here */
fmt.Println(" Integer16 ", i)

}
func (i Integer32) Calculate() {
/* behavior here */
fmt.Println(" Integer32 ", i)
}


func main() {

container := []Calculator{Integer16(1), Integer32(2)}
fmt.Println("container   ", container)
container[0].Calculate()
container[1].Calculate()


}

// 결과값

ontainer    [1 2]
Integer16  1
Integer32  2