반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리

Elements of AI - Neural network basics

2018. 6. 23. 04:21 | Posted by 솔웅


반응형


Elements of AI





Our next topic, deep learning and neural networks, tends to attract more interest than many of the other topics.

우리의 다음 주제 인 deep learning과 neural networks는 다른 많은 주제보다 많은 관심을 끌고 있습니다.



One of the reasons for the interest is the hope to understand our own mind, which emerges from neural processing in our brain. Another reason is the advances in machine learning achieved within the recent years by combining massive data sets and deep learning techniques.


관심의 이유 중 하나는 우리 뇌의 신경 처리에서 나오는 우리 자신의 마음을 이해할 수 있다는 희망입니다. 또 다른 이유는 방대한 데이터 세트와 deep learning 기술을 결합하여 최근 몇 년 동안 machine learning이 발전했기 때문입니다.





What are neural networks?


To better understand the whole, we will start by discussing the individual units that make it up. A neural network can mean either a “real” biological neural network such as the one in your brain, or an artificial neural network simulated in a computer.



전반적인 내용을 더 잘 이해하기 위해 그것을 구성하는 개별 단위에서 부터 시작하겠습니다. neural network은 여러분의 뇌와 같은 "실제" 생물학적 신경망 또는 컴퓨터에서 시뮬레이션 된 인공 신경망을 의미 할 수 있습니다.




Key terminology

Deep learning

Deep learning refers to certain kinds of machine learning techniques where several “layers” of simple processing units are connected in a network so that the input to the system is passed through each one of them in turn. This architecture has been inspired by the processing of visual information in the brain coming through the eyes and the captured by the retina. This depth allows the network to learn more complex structures without requiring unrealistically large amounts of data.


Deep learning이란 간단한 처리 장치들(processing units)의 여러 "계층 layers"이 하나의 네트워크 안에서 연결되어 시스템에 들어오는 입력들을 순서대로 각 레이어에 있는 유닛들에게 전달되게하는 machine learning 기술의 특정 종류 중 하나입니다. 이 architecture는 눈을 통해 망막에 포착되고 그것이 뇌에 전달되는 시각 정보의 처리과정에서 착안 됐습니다. 이 depth 덕분에 네트워크는 비현실적으로 많은 양의 데이터를 요구하지 않고도 더 복잡한 구조를 학습 할 수 있게 됐습니다.





AWS DeepLens - Deep learning enabled video camera for developers

아마존 AWS DeepLens는 Deep learning을 배울 수 있는 개발자용 비디오 카메라 입니다.
2018년 6월부터 판매하고 있습니다. 구매를 원하시면 위 이미지 링크를 클릭하세요.



Neurons, cell bodies, and signals

A neural network, either biological and artificial, consists of a large number simple units, neurons, that receive and transmit signals to each other. The neurons are very very simple processors of information, consisting of a cell body and wires that connect the neurons to each other. Most of the time, they do nothing but sit still and watch for signals coming in through the wires.


생물학적이든 인공적이든 neural network는 , 서로 신호를주고 받는 많은 수의 simple units, 뉴런으로 구성됩니다. 뉴런은 정보를 처리하는 아주아주 간단한 프로세서로서 뉴런들을 서로 연결하는 cell body와 wires로 구성돼 있습니다. 대부분의 경우, 그들은 아무것도하지 않고 조용히 앉아서 wires들을 통해 들어오는 신호를 주시합니다.


Dendrites, axons, and synapses

In the biological lingo, we call the wires that provide the input to the neurons dendrites. Sometimes, depending on the incoming signals, the neuron may fire and send a signal out for the other neurons to receive. The wire that transmits the outgoing signal is called an axon. Each axon may be connected to one or more dendrites at intersections that are called synapses.


생물학적 용어에서 우리는 뉴런 수상 돌기(neurons dendrites)에 입력을 제공하는 wires를 호출합니다. 때로는 들어오는 신호에 따라 뉴런은 signal을 발사해 다른 뉴런이 받을 수 있도록 보내기도 합니다. 발신 신호를 전송하는 wire을 축삭(axon)이라고합니다. 각 축색 돌기(axon)는 시냅스(synapses)라고하는 교차점에서 하나 이상의 수상 돌기(dendrites) 에 연결될 수 있습니다.





Isolated from its fellow-neurons, a single neuron is quite unimpressive, and capable of only a very restricted set of behaviors. When connected to each other, however, the system resulting from their concerted action can become extremely complex. (Exhibit A: your brain.) The behavior of the system is determined by the ways in which the neurons are wired together. Each neuron reacts to the incoming signals in a specific way that can also adapt over time. This adaptation is known to be the key to functions such as memory and learning.



동료 뉴런과 분리 된 단일 뉴런은 전혀 인상적이지 않으며(unimpressive) 매우 제한된 일련의 행동 만 수행 할 수 있습니다. 그러나 서로 연결될 때 그들의 공동 작업으로 인해 발생하는 시스템 결과는 매우 복잡해질 수 있습니다. (예 A : 당신의 뇌.) 시스템의 행동은 뉴런들이 함께 연결되는 방식에 의해 결정됩니다. 각 뉴런은 시간이 지나면서 적응될 수 있는 특정 방식으로 들어오는 신호에 반응합니다. 이러한 적응은 기억 및 학습과 같은 기능의 핵심으로 알려져 있습니다.





Exercise 20. Elements of a neural network


Label the different components of a neuron into the above diagram



아래 다이어그램에 뉴런의 여러 구성 요소들의 이름을 맞춰보세요.





- Synapse (connection)


- Dendrite (input)

- Cell body

- Axon (output)




Why develop artificial neural networks?



The purpose of building artificial models of the brain can be neuroscience, the study of the brain and the nervous system in general. It is tempting to think that by mapping the human brain in enough detail, we can discover the secrets of human and animal cognition and consciousness.



뇌에 대한 인공 모델을 만드는 목적은 일반적인 뇌와 신경에 대한 연구를 하는 신경과학(neuroscience)이 될 수 있습니다. 인간의 두뇌를 충분히 자세하게 매핑함으로써 인간과 동물의 인지와 의식의 비밀을 발견 할 수 있다고 생각되는 아주 매력적인 일이죠.



Note

Modeling the brain

The BRAIN Initiative led by American neuroscience researchers is pushing forward technologies for imaging, modeling, and simulating the brain at a finer and larger scale than before. Some brain research projects are very ambitious in terms of objectives. The Human Brain Project promised about 5 years ago that “the mysteries of the mind can be solved - soon”. After years of work, the Human Brain Project was facing questions about when the billion euros invested by the European Union will deliver what was promised, even though, to be fair, some less ambitious milestones have been achieved.


미국의 신경 과학 연구자들이 주도하는 BRAIN Initiative는 이전보다 더 세세하고 광범위하게 뇌에대한 imaging, modeling, and simulating에 대한 기술을 발전 시키고 있습니다. 일부 뇌 연구 프로젝트는 목표 측면에서 매우 야심적입니다. 인간 두뇌 프로젝트 (Human Brain Project)는 약 5 년 전에 "mind (마음)에 대한 신비가 곧 풀릴 수있다"고 약속했습니다. 유럽 연합 (EU)이 10 억 유로를 투자했고 그걸 기반으로 수년간의 작업이 진행됐습니다. 이제 휴먼 브레인 프로젝트 (Human Brain Project)는 약속 한 내용을 언제 제공 할 것인가에 대한 질문에 직면 해 있습니다. 그럼에도 불구하고 객관적으로 볼 때 이 프로젝트는 약속한 야심 보다는 적은 야심의 마일스톤을 달성하기는 했습니다.



However, even while we seem to be almost as far from understanding the mind and consciousness, there are clear milestones that have been achieved in neuroscience. By better understanding of the structure and function of the brain, we are already reaping some concrete rewards. We can, for instance, identify abnormal functioning and try to help the brain avoid them and reinstate normal operation. This can lead to life-changing new medical treatments for people suffering from neurological disorders: epilepsy, Alzheimer’s disease, problems caused by developmental disorders or damage caused by injuries, and so on.



어쨌든 지금은 우리가 마음과 의식을 이해하는 것에서 거의 멀리 떨어져있는 것처럼 보이지만 신경 과학(neuroscience)에서 성취 된 명확한 이정표(milestones)들이 있습니다. 뇌의 구조와 기능을 더 잘 이해함으로써 우리는 이미 어떤 견고한 보상을 받고 있습니다. 예를 들어 우리는 어떤 비정상적인 기능을 식별하고 뇌가 그런 비정상적인 상황을 피하고 정상적인 상태로 되돌아 오도록 도울 수 있습니다. 이것은 간질(neurological disorders), 알츠하이머, 발달 장애로 인한 문제 또는 부상으로 인한 손상 등 신경계 질환으로 고통받는 사람들을 위해 삶을 변화시키는 새로운 치료법으로 이어질 수 있습니다.



Note

Looking to the future: brain computer interfaces

One research direction in neuroscience is brain-computer interfaces that allow interacting with a computer by simply thinking. The current interfaces are very limited and they can be used, for example, to reconstruct on a very rough level what a person is seeing, or to control robotic arms or drones by thought. Perhaps some day we can actually implement a thought reading machine that allows precise instructions but currently they belong to science fiction. It is also conceivable that we could feed information into the brain by stimulating it by small electronic pulses. Such stimulation is currently used for therapeutic purposes. Feeding detailed information such as specific words, ideas, memories, or emotions is at least currently science fiction rather than reality, but obviously we know neither the limits of such technology, nor how hard it is to reach them.


신경 과학(neuroscience) 분야에 대한 한 연구 방향은 brain-computer interfaces로 단순하게 생각하는 컴퓨터와 상호 작용할 수 있도록 하는 겁니다. 현재의 인터페이스는 매우 제한되어 있지만 실제 사용하는 분야가 있기도 합니다. 예를 들어 사람이 보고있는 것을 매우 거칠지만 재구성할 수 있구요, 생각으로 로봇 팔이나 드론을 조종 하는 것 등이 가능합니다. 어쩌면 언젠가는 정확하게 생각을 읽는 기계를 실제로 구현할 수 있겠습니다만 아직까지 그것은 공상과학소설의 영역입니다.. 우리는 작은 전자 펄스(electronic pulses)로 자극함으로서 뇌로 정보를 제공할 수 있다고 생각합니다. 이러한 자극은 현재 치료(therapeutic ) 목적으로 사용됩니다. 특정 단어, 아이디어, 추억 또는 감정과 같은 자세한 정보를 제공하는 것은 아직까지는 현실보다는 공상과학소설에만 존재하고 그것을 현실화 하는게 얼마나 어려울지도 아직 가늠하기 힘든 수준입니다. 







We’ve drifted a little astray from the topic of the course. In fact, another main reason for building artificial neural networks has little to do with understanding biological systems. It is to use biological systems as an inspiration to build better AI and machine learning techniques. The idea is very natural: the brain is an amazingly complex information processing system capable of a wide range of intelligent behaviors (plus occasionally some not-so-intelligent ones), and therefore, it makes sense to look for inspiration in it when we try to create artificially intelligent systems.



우리는 코스의 주제에서 약간의 벗어나 버렸네요. 사실, 인공 신경 네트워크를 구축하는 또 다른 주된 이유는 생물학적 시스템을 이해하는 것과 거의 관련이 없습니다. 더 나은 AI 및 기계 학습 기술을 구축하는 데 대한 영감으로 생물학적 시스템을 사용하는 것입니다. 그 아이디어는 매우 자연 스러운 것입니다. 두뇌는 다양한 지능적 행동 (때로는 그렇게 지능적이지는 않은 행동들도 포함)이 가능하도록 하는 놀랍도록 복잡한 정보 처리 시스템이므로, 우리가 인공 지능 시스템을 만드려고 할 때 영감을 받기 위해 살펴 보는 것은 당연한 일입니다. 



Neural networks have been a major trend in AI since the 1960s. We’ll return to the waves of popularity in the history of AI in the final part. Currently neural networks are again at the very top of the list as deep learning is used to achieve significant improvements in many areas such as natural language and image processing, which have traditionally been sore points of AI.



Neural networks은 1960 년대 이래 인공 지능 분야에서 major trend 입니다. 우리는 마지막 부분에서 인공 지능의 역사에서 waves of popularity를 다룰 겁니다. 현재 neural networks는 deep learning처럼 인공지능 분야 리스트의 맨 위에 있습니다. 전통적으로 인공 지능의 요점이었던 자연 언어 및 이미지 처리와 같은 많은 분야에서 중요한 개선을 이루기 위해 깊은 학습이 사용되므로 현재 신경 네트워크가 목록의 맨 위에 있습니다.





What is so special about neural networks?



The case for neural networks in general as an approach to AI is based on a similar argument as that for logic-based approaches. In the latter case, it was thought that in order to achieve human-level intelligence, we need to simulate higher-level thought processes, and in particular, manipulation of symbols representing certain concrete or abstract concepts using logical rules.



AI에 접근하는 일반적인 의미로서의 neural networks에 대한 케이스는 logic-based 접근법과 argument를 같습니다. 후자의 경우, 인간 수준의 지능을 얻기 위해서는 더 높은 수준의 사고 과정을 시뮬레이션해야하며, 특히 논리적 규칙을 사용하여 특정 구체적 또는 추상적 개념을 나타내는 기호를 조작해야한다고 생각했습니다.



The argument for neural networks is that by simulating the lower-level, “subsymbolic” data processing on the level of neurons and neural networks, intelligence will emerge. This all sounds very reasonable but keep in mind that in order to build flying machines, we don’t build airplanes that flap their wings, or that are made of bones, muscle, and feather. Likewise, in artificial neural networks, the internal mechanism of the neurons is usually ignored and the artificial neurons are often much simpler than their natural counterparts. The eletro-chemical signalling mechanisms between natural neurons are also mostly ignored in artificial models when the goal is to build AI systems rather than to simulate biological systems.



neural networks에 대한 논쟁은 neurons과 neural networks 그리고 지능 수준의 데이터를 처리하는 것보다 낮은 수준인  “subsymbolic” 데이터 처리과정에 의해 가능할 것이라고 생각됐습니다. 이 모든 것은 매우 합리적으로 들릴지 모르지만 비행하는 기계를 만들기 위해 비행기 날개를 퍼덕이게 만들지는 않는다는 것을 유념해 두세요. 우리는 비행기를 만들 때 뼈나 근육, 깃털같은 것들을 만들지는 않습니다. 마찬가지로, artificial neural networks에서 뉴런의 내부 메카니즘은 대개 무시되며 인공 뉴런은 종종 천연 뉴런보다 훨씬 간단합니다. 자연상태의 뉴런 사이의 전기 화학적 신호 메커니즘은 생물학적 시스템을 시뮬레이션하기보다는 인공 지능 시스템을 구축하는 것이 목표 인 인공 모델에서도 대부분 무시됩니다.



Compared to how computers traditionally work, neural networks have certain special features:



컴퓨터가 전통적으로 작동하는 방식과 비교할 때 신경망에는 다음과 같은 특별한 기능이 있습니다.




Neural network key feature 1


For one, in a traditional computer, information is processed in a central processor (aptly named the central processing unit, or CPU for short) which can only focus on doing one thing at a time. The CPU can retrieve data to be processed from the computer’s memory, and store the result in the memory. Thus, data storage and processing are handled by two separate components of the computer: the memory and the CPU. In neural networks, the system consists of a large number of neurons, each of which can process information on its own so that instead of having a CPU process each piece of information one after the other, the neurons process vast amounts of information simultaneously.



첫번째 전통적인 컴퓨터에서 정보는 한 번에 한 가지 일에만 집중할 수있는 중앙 프로세서 (중앙 처리 장치 또는 CPU라고도 함)에서 처리됩니다. CPU는 처리 할 데이터를 컴퓨터 메모리에서 검색하여 처리된 결과를 메모리에 저장할 수 있습니다. 따라서 데이터 저장 및 처리는 컴퓨터의 두 가지 개별 구성 요소 인 메모리와 CPU에서 처리됩니다. neural networks에서 시스템은 많은 수의 뉴런으로 구성되어 있습니다. 각 뉴런은 자체적으로 정보를 처리 할 수 있으므로 CPU가 각 정보를 차례로 처리하는 대신 한 번에 막대한 양의 정보를 동시에 처리합니다.



Neural network key feature 2


The second difference is that data storage (memory) and processing isn’t separated like in traditional computers. The neurons both store and process information so that there is no need to retrieve data from the memory for processing. The data can be stored short term in the neurons themselves (they either fire or not at any given time) or for longer term storage, in the connections between the neurons — their so called weights, which we will discuss below.



두 번째 차이점은 기존의 컴퓨터처럼 데이터 저장 (메모리) 및 처리가 분리되어 있지 않다는 점입니다. 뉴런은 정보의 저장과 처리를 둘 다 합니다. 그러므로 정보를 처리하기 위해 메모리에서 정보를 검색하지 않아도 됩니다. 데이터는 뉴런 안에 혹은 뉴런들간에 연결된 지점에 단기간 또는 장기간 저장될 수 있습니다. (그들은 그 정보를 발사하거나 그냥 가지고 있거나 할 수 있습니다.) 그 연결 점들을 weights라고 하는데 이 부분에 대해 앞으로 살펴 볼 겁니다. 



Because of these two differences, neural networks and traditional computers are suited for somewhat different tasks. Even though it is entirely possible to simulate neural networks in traditional computers, which was the way they were used for a long time, their maximum capacity is achieved only when we use special hardware (computer devices) that can process many pieces of information at the same time. This is called parallel processing. Incidentally, graphics processors (or graphics processing units, GPUs) have this capability and they have become a cost-effective solution for running massive deep learning methods.



이 두 가지 차이점 때문에 neural networks과 전통적인 컴퓨터는 각기 다른 작업에 적합합니다. 전통적인 컴퓨터에서 신경 네트워크를 시뮬레이션하는 것이 가능하기는 하고 그것이 오랫동안 우리가 사용했던 방법이지만 그걸 가능하도록 하는 용량은 동시에 아주 많은 정보조각들을 처리할 수 있는 특별한 하드웨어를 사용해야만 가능합니다. 이것을 병렬 처리(parallel processing)라고합니다. 덧붙여서 그래픽 프로세서 (또는 그래픽 처리 장치, GPU)는 이러한 capability를 갖추고 있으며 대규모 deep learning 방법을 실행하는 데 비용 효율적인 솔루션이 되었습니다.





반응형