본문 바로가기

공학

인공 신경망(2) 오랜만에 포스팅을 해보고자 한다. 오늘 할 내용은 지난번에 하기로 한 신경망이 어떻게 논리 게이트가 될 수 있는지 알아보자 신경망은 지난번과 동일하다. 입력값과 weight 값의 곱의 합이 신경에 들어가고 그값이 NET이 된다. 그 다음 NET에 적당한 함수를 씌워주면 출력값 y가 나온다. 그리고 그 다음 논리 게이트(gate)는 보통 논리 소자라고 불리는데, and, or, not, nand 게이트 들을 말한다. 가장 먼저 and 게이트를 만들어보자 입력값은 (1,1)이다. 그러면 u = 1*1 + 1*1 - 1.5 이므로 그러면 결과값은 0.5이다. 그 다음 순서는 적절한 함수를 적용하는 건데, 지금은 스텝 함수를 적용하겠다(스텝 함수는 입력값이 0보다 크거나 같으면 1을, 0보다 작으면 0을 돌려주.. 더보기
전략형 게임1 게임이론.. 게임이론..게임이란 단어를 들으면 무엇을 떠올리시나요?거의 대부분이 온라인 게임이나, 콘솔게임등의 전자오락을 떠올리실 거라 생각합니다.게임이론이 뭐지? 전자오락을 만드는 이론인가?- Re : 아닙니다. 네x버 사전에 의하면 게임은 다음과 같이 정의되어 있습니다.게임 : 규칙을 정해놓고 승부를 정하는 놀이. 규칙이 있고 승패가 있으며 플레이어(실제로 놀이를 행하는 사람)가 존재한다면뭐든지 게임이 될 수 있습니다.카드게임, 오락게임, 축구게임, 퀴즈게임 등등.. 오호! 게임이란 그런거군!그럼 게임이론은? 게임을 이론적으로 파고든 건가?- Re : 100점 만점에 70점 드리죠. 게임 이론이란 게임을 진행하며 자신에게 최상의 전략을 이론적으로 따져보는 이론이라고 할 수 있죠.(혼자 질문하고 혼자 .. 더보기
게임이론 - 프롤로그 게임이론은 폰 노이만이 모건슈턴과 함께 공동으로 연구하여 을 발표하며 이론적 기초가 시작되었다고 알려집니다. 사실 게임이론이 경제학에서 가장 활발히 사용되고 있기는 하지만, 정치, 심리, 사회, 철학 등 여러 분야에서 사용되고 있는 학문입니다. 게임이론은 응용수학의 한 분야로 기초적인 수학적 지식을 필요로 합니다. 아니 사실, 수학입니다. 문과에 있을 과목이 아니예요!오히려 이과 분들이 재미있게 즐기실 수 있는 과목이 아닐까 싶습니다. 게임이론은 개개인의 이해관계, 개개인이 가진 정보 등을 토대로각 개인 혹은 집단의 이익을 극대화 하는 방법을 연구하는 학문입니다. 쉽게 말하면, 어떻게 하는 것이 나에게(우리에게) 혹은 서로에게 가장 좋을까?를 연구하는 거죠. 예를 들어보죠. 철수와 영희가 데이트를 하기로.. 더보기
2. Hello World 분석하기 2. Hello World 분석하기 Wednesday, January 23, 2013 8:18 PM 안녕하세요, 이번 강좌에서는 저번시간에 만든 Hello World라는 프로그램을 분석해보도록 하겠습니다. 이미 C나 C++를 해보신 분들께선 저번시간에 만든 코드가 굉장히 익숙하고 부분부분만 다르고 비슷하다고 생각될텐데요, 아무래도 C에서 파생된 언어다보니 그런가 싶습니다. 참고로, 가끔 자동으로 프로젝트를 생성시 Hello World 프로그램 위에 파일명이나 유저이름 등등 간단한 설명이 되있는데요, 저처럼 다 지우셔도 됩니다. 일단 첫줄부터 차근차근 알아가 보도록 하겠습니다. #import 첫줄의 코드입니다. 이 코드가 의미하는것은 지금 우리가 쓰고 있는 프로그램에 무언가를 import(수입, 받아들이다.. 더보기
1. Objective-C 준비하기 1. Objective-C 준비하기 Objective C는 무었일까요? 링크: 위키 백과 - Objective-C Objective C 는 객체 지향 언어로써 C 언어에서 파생된 언어입니다. 이 언어는 맥과 아이폰, 아이팟터치, 그리고 아이패드에 어플리케이션을 개발할때 쓰입니다. 일단 이 강좌는 저 역시나 공부하는 목적으로 차근차근 연재해나갈 생각이구요. 혹시나 틀린점이 있다면 댓글 부탁드립니다. Objective C를 공부하기 위해선 일단 맥이 필요합니다. 왜냐하면 이 강좌는 Xcode라는 컴파일러로 진행될것이기 때문이죠. 최신 맥 OSX를 업데이트하셨거나 최근에 맥을 구입하신분이라면 Xcode가 기본으로 설치가 되있을겁니다. 하지만 저는 Xcode 버전 4.5.1을 사용할것이며 최대한 저와 같은 버전.. 더보기
[압축이론]Lempel-Ziv (렘펠-지브) Coding Lempel-Ziv Coding 렘펠-지브 압축 렘펠-지브 압축은 데이터 압축 기법중 하나입니다. 간단히 어떠한 방식으로 압축이 되는지 알아보겠습니다. 예를들어 taccagtaccagtaccacta# 라는 메세지를 압축하려 합니다. 여기서 마지막 # 문자는 임의로 정하여 문장의 마침을 알리는 표식으로 사용하겠습니다. 렘펠-지브의 압축방식의 핵심은 사전을 사용한다는 것입니다. 문자를 압축시킬때 사전에 한번도 등록되지 않은 문자를 번호표와 함께 사전에 넣는것입니다. 단, 압축의 시작에 앞서 사전에는 0번째 단어가 존재합니다. 즉, 사전은 언제나 0번째 번호표와 null을 뜻하는 문자가 포함됩니다 이는 이론적일뿐, 실전 코드에선 그냥 빈 문자나 문장이 되겠습니다. 제가 방금 예제로 taccagtaccagtac.. 더보기
신경망 시작 - McCulloch_Pitt 모델(1) 기계 학습을 공부하면서, 여기다 정리를 해보고자 합니다.기계학습에서 많은 갈래가 있겠지만, 신경망 관련해서 내용을 정리하고자 합니다.특히 최종적으로는 SNN(Spiking Neural Network)내용을 중점적으로 할려고 하는데,아직 공부가 부족해서 그건 한참 후가 될꺼 같네요. 신경망의 내용은 역시 신경망은 대체 무엇인가와 역사 정도 장점 정도가 적당한거 같네요.(저도 공부하는 단계이니, 틀린 내용 있다면 피드백 부탁 드립니다.) 기계학습이나 인공지능 쪽은 결국 컴퓨터나 기계가 학습을 하게 하고, 궁극적 모델을 인간으로 잡고 있죠. 이 때 큰 갈래로 계산주의와 연결주의로 나눠집니다. 계산주의는 인간의 뇌가 하고 있는 건, 언어와 같은 기호를 처리하는 시스템이고, 이를 직렬적으로 연결해서 계산하면 인간.. 더보기
Chapter 1-1 : What Is a Program Made Of? 이번 강의에서는 Java Programming의 가장 기초를 배우게 됩니다. Language Elements 보통의 일반적인 프로그래밍 언어에는 이런 기본요소들이 있습니다. Key Words: 어떠한 특수 목적에만 사용되는 단어들입니다Operator: 특정 기호들로써 하나 이상의 Operands사이에서 오퍼레이션을 사용합니다.Punctuation: 마침표, 쉼표, 느낌표, 콜론, 세미콜론 등을 Punctuation이라고 합니다. 프로그래밍 언어에서는 특정 용도로 사용되는 경우가 많습니다.Programmer-Defined Names: 프로그래머가 직접 정한 이름들입니다. 보통 프로그래머가 만든 메모리 내 공간의 주소같은것을 알기 쉽게 해놓은 것들이죠.Syntax: 모든 언어에 문법이 있듯이 프로그래밍 언어.. 더보기
Java Programming - Environment 이번 강의에선 작업환경을 세팅하는 법을 배우도록 하겠습니다. 현재 Java언어는 Oracle이라는 회사에서 운영/관리 하고 있습니다.이 운영권때문에 구글하고 Oracle하고 많이도 싸웠는데.. 뭐 그건 별로 중요한 이야기는 아니고요 Java언어를 컴퓨터에서 사용하기 위해서는 Java언어를 컴퓨터에 설치해야 합니다그래서 저희가 다운받을 것은 Java Development Kit입니다. 다운로드 링크 (클릭) 아래의 링크를 클릭하셔서 JDK최신버젼을 다운로드하시고 설치해주시면 되겠습니다. JDK를 다 설치하신 이후에는 IDE를 설치해야겠지요. 저희가 사용할 IDE는 JGrasp입니다.세상에 수많은 IDE들이 존재합니다. 자신의 취향과 활용에 맞춰서 다운받으시면 됩니다만,일단 프로그래밍 연습용으로 가장 가볍고.. 더보기
Java Programming - Introduction 안녕하세요 정열돌입니다이 강의는 'Java Programming'을 중점으로 합니다. 일단 처음으로 프로그래밍이 뭘 하는지에 대해서는 간단하게 언급만 하고 넘어가겠습니다. 프로그래밍은 컴퓨터 안에서 사용할 수 있는 도구를 만드는 작업입니다.프로그래머들은 그런 도구를 만드는 장인이죠.프로그래머가 어느정도의 프로그래밍 능력을 갖추었나에 따라 나오는 결과물이 다릅니다. 그리고 그런 도구를 만들 수 있는 재료가 있는데요, 그것이 바로 프로그래밍 언어들입니다.그리고 그 재료들을 사용해서 도구를 만들 수 있게 도와주는 공장의 역할을 하는 것이 IDE(Integrated Development Environment)입니다. 이 강의에서는 'Java'라는 프로그래밍 언어를 가지고,'JGrasp'라는 IDE를 이용하여 프.. 더보기