C언어는 저학년 때 컴퓨터공학 수업에서 꼭 듣고 가는 수업입니다. 대부분의 학생들이 왜 C언어를 배우는지도 잘 모를 뿐만 아니라 보통 포인터 챕터에 들어가면 머리를 싸매고 어려워서 대부분 포기합니다.

앞으로 C언어를 보다 쉽게 공부를 정리하며 풀어가면서 조금 더 흥미를 가질 수 있는 기회를 만들고자 포스팅을 시작하였습니다.

 

이번 포스트에서는 C언어의 탄생 및 간단한 소개를 하려고 합니다.

벌써부터 노잼주의보 및 지루함이 느껴질 수도 있지만 아는 것과 모른 것의 차이는 격차가 나중에 커질 수도 있습니다. 그리고 역사 및 간단한 개요를 배우시면 나중에 다른 사람들 앞에서도 당당하게 소개할 수 있을 것 같습니다.

 

C 언어가 만들어진 과정과 특징을 알면 C 언어의 문법 구조를 이해하는 데 있어서 도움이 됩니다. C언어의 문법을 배우기 전에 간략하게 C언어의 역사에 대하여 간단히 알아보겠습니다.

 


C언어의 탄생

데니스 리치와 켄 톰슨

 

1960년대 개발되었던 운영체제들은 하드웨어 종속적인 언어를 사용하여서 개발되었습니다. 따라서 하드웨어가 바뀌면 운영체제의 많은 부분을 디시 개발해야 했습니다. 벨 연구소의 데니스 리치(Dennis Ritchie)와 켄 톰슨(Ken Thompson)은 이런 불편함을 없애고자 하드웨어가 변경되어도 프로그램을 다시 작성하지 않아도 되는 운영체제를 만들기 위해 노력하였습니다. 1970년에 켄 톰슨은 B 언어를 만들었지만, 이 언어도 하드웨어로부터 독립된 운영체제를 만드는 데 있어 적합하지 않았습니다. 1972년, 켄 톰슨은 데니스 리치와 함께 새로운 언어를 개발하였고, 이것이 바로 C언어입니다.

C언어는 하드웨어의 세밀한 부분까지 제어할 수 있으며, 특정 하드웨어를 직접 표현하지 않도록 문법을 구성하였기 때문에 하드웨어에 독립된 형태로 프로그램을 개발할 수 있었습니다. 데니스 리치와 켄 톰슨은 C 언어를 90% 이상 사용하여 유닉스(UNIX)라는 운영체제를 만들었고, 유닉스는 다양한 하드웨어에서 동작할 수 있는 운영체제로 자리를 잡게 되었습니다.


 

※ 오늘은 C언어 프로그래밍의 기초인 'C언어의 소개 및 개요'에 대하여 알아보았습니다.

이 포스트는 학부에서 제공하는 기본적인 컴퓨터 공학 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 C 언어 프로그래밍 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

파생상품의 종류

 

금융공학에서 다루는 파생상품(Derivative)은 미래의 거래 조건을 지금 결정해야 하는 거래와 관련되어 있습니다.

 

예를 들자면, 1년 후에 거래할 어떤 상품의 수량과 가격을 현재 시점에 결정하는 것입니다. 왜 이러한 거래를 하는 걸까요?

 

 


 

Risk Indicator (리스크 측정도)

 

1. 미래에 혹시나 발생할 수 있는 리스크를 최소화하거나 이를 피하기 위해서입니다.

 

전문 용어 위험이나 리스크를 헤지(hedge)라고 불릅니다. 주로 '리스크를 헤지한다.' 라고 표현합니다. 미래에 거래할 특정 상품의 수량과 가격을 지금 결정해놓으면, 그때까지 그것들에 대해서는 걱정하지 않고 마음놓고 다른 일에 집중을 할 수 있을 것입니다.주로 기업(증권사, IB, 원자재 가공, 거래 기업)들은 금융공학 기법을 활용해 향후에 발생할 수 있는 다양한 리스크를 헤지하고, 본업인 비즈니스에만 충실할 수 있도록 집중합니다. 따라서 금융공학은 미래에 대한 리스크나 변수(걱정과 근심)을 덜어 주는 역할을 합니다.

 

금융공학을 통하여 미래의 리스크를 최소화할 수 있는 방법론과 논리적인 수학적 사고를 배워갈 수 있습니다. 이것이 금융공학을 공부해야 하고 왜 실질적으로 필요한지 알려주는 가장 핵심적인 이유라고 할 수 있습니다.

 

금융공학은 미래의 불확실성에 대하여 미리 대비하고 그에 따른 합리적인 의사결정을 할 수 있도록 도와주며, 미래의 리스크를 최소화 할 수 있습니다.

 

수익 상승 

 

2. 돈을 벌 수 있기 때문입니다.

 

미래에 발생할 거래에 대해 다른 사람들보다 빨리 더 정확하게 예측하고 판단을 내려 조금 더 빨리 움직인다면, 기회를 이용하여 남들 보다 더 많은 돈을 빠르게 벌 수 있습니다. 일반적으로 파생상품 거래는 제로섬 게임(Zero-Sum Game)이기 때문에, 돈을 잃는 사람 반대편에는 반드시 돈을 버는 사람들이 있기 마련입니다.

 

투자은행이나 헤지펀드와 같은 금융시장의 투자가들이 금융공학을 이용하여 돈을 벌고자 하는 대표적인 세력입니다.물론 돈을 한번에 많이 벌기 위해 선물이나 옵션과 같은 파생상품에 투자하는 개미투자자들도 많습니다.

Financial Engineering Domain (금융공학 도메인 영역)

 

보통 금융공학이란 단어의 학문은 수학, 공학, 재무학의 구분의 경계선이 애매하다고 느껴집니다. 그리고 수학을 기피하시는 분이라면 더욱 더 금융(수학) + 공학이란 단어조합이 더 눈에 돋보일 것이라고 생각합니다.

 

저는 금융공학이란 개념을 대학교 4학년 때 대학전공 수업에서 처음 들어보았습니다. 그 당시에는 큰 의미를 두지 않고 투자은행 및 증권사에서 쓰이는 학문으로 이해하였습니다. 하지만 최근에 머신러닝, 딥러닝에 관심을 가지게 되면서 알고리즘 트레이딩 분야에 대하여 호기심이 생겨서, 다시 금융공학에 대한 공부와 금융 전공 기초를 다시 확실히 공부하고 싶은 생각이 들었습니다.

 

 


 

그럼 본론으로 들어가서 도대체 '금융공학'은 무엇을 가르치는 학문이고 어디에서 쓰이는지 쉽게 설명을 하겠습니다.

 

 

출처: 모교대학 강의 Financial Engineering (블랙 숄즈 공식)

 

먼저 금융공학 책을 펴면 각종 수식과 수학, 통계학적인 개념들이 써져있습니다. 금융공학(Financial Engineering)은 금융(Finance)과 공학(Engineering)이 합쳐진 융합의 학문입니다. 다만 공학에서는 주로 통계학과 수학적인 방법으로 문제에 접근을 합니다.

 

 

※ (통계학과 수학은 주로 과학 범주의 카테고리인데 공학으로 표현된 이유는 과학이 학문적으로 접근하는 반면에, 공학은 현실에 있는 문제를 해결하는 것에 초점을 맞추고 있기 때문입니다)

 


 

출처: KAIST 금융공학 석사과정(참조)

 

그러므로 금융공학은 통계학과 수학을 통해 금융 시장에서 생기는 다양한 문제들을 해결하는 학문입니다. 금융 시장에서 발생하게 되는 문제들은 대부분 파생상품에 관련되어 있습니다.

 

파생상품(Derivatives)은 일반적인 상품, 기초자산에서 파생된 상품입니다. 기초자산(Underlying Asset)은 주식, 채권,통화와 같은 금융상품 뿐만이 아니라, 농축수산물 같은 상품(Commodity)도 포함되어 있습니다.

 

이러한 파생상품에는 선도 선물(Futures), 옵션(Option), 스왑(Swap)등이 있습니다. 파생상품의 가치는 기초자산의 가치변동으로부터 파생되어 결정됩니다. 금융공학은 주로 이러한 파생상품들의 가격 결정과 다양한 파생상품의 개발을 다루는 학문입니다.

보통 우리가 인공지능이란 단어를 듣게 되면 제일 먼저 떠오르는 것은 아마 흔히 핸드폰에서 쓰이는 Apple의 시리(Siri)나 Samsung의 빅스비(Bixby) 등의 인공지능 비서가 떠오를 것입니다. 인공지능은 인간의 학습능력과 추론 능력, 지각 능력, 자연언어의 이해 능력 등을 컴퓨터 프로그램으로 실현한 기술을 의미하고 있습니다.

위에 언급한 시리, 빅스비와 대화할 때 아이폰, 갤럭시의 인공지능은 자연언어 처리를 통해 우리가 사용하는 언어를 컴퓨터가 인식을 하게 됩니다. 여기서 자연 언어는 우리가 사용하는 언어를 뜻합니다. 그러면 컴퓨터는 우리가 사용하는 언어를 자연언어처리를 통해서 우리가 쓰는 언어를 인식하여 처리하게 됩니다. 시리 와 빅스비와 대화할 때처럼 음성을 인식하고 번역하고 정보를 처리하며, 마지막으로 음성을 모두 종합하여 분석 후에 사용자에게 대답을 주게 됩니다.

 


영국의 천재 앨런 튜링(Alan Turing)

 

그러면 서론에서 간단하게 인공지능에 대한 소개와 일상생활에서의 예를 들어보았습니다. 이제 컴퓨터가 인공지능을 갖추고 있는지 판별하는 실험인 앨런 튜링이 고안한 '튜링 테스트'에 대해서 다루어 보겠습니다. 영국의 수학자, 논리학자인 앨런 튜링을 소개하면 그는 세계 2차 대전 때 독일군의 에니그마라는 암호기를 해독하여 연합군을 승리를 이끌었습니다. 1950년에 튜링은 [계산 기계와 지성 / "Computing Machinery and Intelligence]이라는 제목으로 논문을 발표하였고, 이를 통해 컴퓨터가 사람처럼 생각할 수 있다는 의견을 제시하였습니다.

튜링은 컴퓨터와 대화를 나누어서 컴퓨터의 반응을 인간과 구별할 수 없다면 해당 컴퓨터가 사고(인식, 판단 능력 기준) 할 수 있는 것으로 간주하여야 한다고 주장하였습니다.

 

그리고 50년 후에는 보통 사람으로 구성된 질문자들이 5분 동안 대화를 하며 컴퓨터의 진짜 정체를 알아낼 확률이 70%가 넘지 않도록 프로그래밍하는 것이 가능할 것이라고 말하였습니다.

하지만 앨런 튜링은 이런 포괄적인 논리만 제시했을 뿐, 구체적인 실험 방법과 판별 기준은 언급하지 않았습니다. 그리하여 나중에 수대 과학자들이 그의 논리와 주장을 바탕으로 실험 방법을 고도화시켜 테스트화를 시키게 됩니다. 이 테스트는 앨런 튜링의 이름을 따 '튜링 테스트(Turing Test)'라고 불리게 됩니다.

튜링 테스트는 서로 보이지 않는 공간에서 질의자가 인간과 컴퓨터가 정해진 시간 안에서 서로 질문과 응답을 하며 대화를 하는 방식으로 이루어졌습니다.

컴퓨터가 전체 심판진 가운데 1/3(3분의 1) 이상을 속이면 그 컴퓨터는 사람의 사고를 기반한 인공지능을 가지고 있다고 인정을 받게 됩니다.


◎ 개발자의 관점으로 봤을 때는 많은 심사원이 인간이라고 믿게 하는 기계를 만드는 것이 목표이며, 심사원은 자유롭게 질문할 수 있으며 이야기나 음악 감상을 듣는 등의 의견을 요구할 수도 있습니다.

튜링 테스트

 

튜링 테스트

 

챗봇의 역사 타임라인


튜링 테스트와 관해서 대표적인 예로 2 가지 시스템이 알려져 있습니다. 1966년 발표된 '일라이저(ELIZA)'와 1972년 발표된 '패리(PARRY)입니다.

일라이자(Eliza)= 사람과 채팅하는 프로그램 (1966)

 

조셉 와이젠바움이 발표한 일라이저는 당시 컴퓨터의 성능이 높지 않다는 배경 때문에 할 수 있는 작업이 한정돼 있었습니다. 거기서 규칙 베이스의 답변을 기본으로 한 시스템을 만듭니다. 질문 내용을 단어로 분석해 기계가 이미 알고 있는 단어가 있으면 그에 대해 답을 내놓는데, 모르는 것에 대한 내용은 "그 질문은 중요합니까?"라고 하는 등 인간이 일상적으로 자주 받아치는 말을 던져 인간다운 모습을 보여주었습니다. 이는 심리요법 치료사의 응답을 참고하였다고 합니다.

일라이저와 패리는 튜링 테스트에 합격하지는 못했지만 각각 30%, 50% 미만의 판정자가 잘못 판단했고, 결국 가까운 미래에 테스트에 합격하는 기계가 등장할 것이라는 말이 꾸준히 나왔습니다. 튜링 테스트에 시험하는 것은 '인간다운 행동'이기 때문에 모든 질문에 정답을 내놓을 필요 없이(인간이라도 그게 가능하다고 단정할 수 없고, 정답이 없는 종류의 질문도 많음) 인간을 모방하는 기술과 화술이 중요합니다.

 


 

※ 위에 실험 기준과 사람이 가지고 있는 사고를 모두 통합해 보았을 때 사람이 유리한 테스트입니다. 하지만 2014년 6월 영국 왕립협회가 실시한 튜링 테스트에서 영국의 레딩대학교가 개발한 컴퓨터 프로그램 '유진 구스트만'이 처음으로 테스트를 통과하였습니다.

레딩대학교에서 발명한 컴퓨터 프로그램 유진 구스트만(Eugene Goostman)

 

유진 구스트만은 러시아의 블라디미르 베셀로프와 우크라이나의 유진 뎀첸코가 개발한 슈퍼컴퓨터 '유진(Eugene)으로서 '우크라이나에 사는 13세 소년'이라는 설정으로 튜링 테스트에 도전했습니다. 튜링 박사 사후 60주년인 2014년 영국 레딩 대학에서 개최된 '튜링 테스트 2014'에서 5분 동안 튜링 테스트가 진행되었고 33%의 판정자들이 기계라고 판단하지 못하여 첫 합격의 영예를 안았습니다.

반면에 '특이점(싱귤래리티)'을 제창한 레이 커즈와일을 비롯해 일부 전문가들은 이 합격에 이의를 제기했습니다. 그 이유로는 '우크라이나에 사는 13세 소년'이라는 설정이라 영어가 능숙하지 않다는 전제를 깔았고, 시험 기간 5분은 너무 짧으며 실제로 인터넷을 이용해 유진과 대화를 해봤더니 대화의 맥락을 따라오지 못했다 등의 이유를 들며 유진이 컴퓨터가 아니라 단순한 '챗봇'이라고 주장한 것입니다.


마지막으로 튜링 테스트에 대한 반론 의견을 설명한 포스트도 참조하시면 도움이 되실 것 같습니다.

 

 

[인공지능 기초] 중국어 방 / 튜링에 대한 반론

https://blog.naver.com/j767asde/221575226071


※ 인공지능을 연구하는 관점에서 보면 챗봇은 지성을 가지고 있다고까지는 할 수 없고, 이해할 수 없는 내용에 대한 질문을 받으면 얼버무리며 대답하는 식으로 인간답게 보이는 기법을 썼을 뿐이라는 의견을 자주 듣게 됩니다.

이 포스트는 학부에서 제공하는 기본적인 강의와 책들을 토대로 알기 쉽게 내용을 작성하였습니다. 하지만 계속 더 유익하고 해당 논문 및 전문 서적을 읽어가며 더 추가돼야 할 내용이 있으면 인공지능 포스트와 콘텐츠들을 계속 고도화하는 방식으로 진행하려고 합니다.

 

#1 글을 작성해 보세요.

DataHolic26님의 회원 가입을 진심으로 축하합니다. 이 글은 비공개로 작성돼 있습니다.
'편집'으로 내용을 바꾸시거나, 삭제 후 '새 글을 작성'하셔도 됩니다.
블로그를 간단하게 소개하는 글로 편집해보는 것도 좋겠네요.


#2 다양한 스킨이 있어요.

티스토리에 있는 다양한 '스킨'도 살펴 보세요.
블로그나 사이트를 사용하는 목적에 맞게 스킨을 고를 수 있습니다.
어떤 이야기를 주로 하실 건가요? 잘 생각해 보시고, 마음에 드는 스킨을 고르세요.
'스킨 커버 편집'을 간단히 하면 멋진 첫 화면을 가질 수 있으니 한 번 해보는 것도 좋겠네요


#3 포럼에서 사람들과 소통하세요.

마지막으로 사용하시다가 티스토리에 대해 궁금한 내용이 있다면 '포럼'을 확인하세요.
찾기 어려울 땐 직접 질문을 해보는 건 어떨까요? 친절한 티슷터 분들이 바로 답변해 줄 거에요.



+ Recent posts