Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Outsourcing Machine Intelligence to Humans
Alex Ianta
SeeingObject RecognitionGesture RecognitionFacial Recognition
FeelingTweet Emotional AnalysisNetflix RecommendationsTargeted Advertising
ThinkingOptimizationGame AI (planning)
Teaching machines to behave like humans.
Genetic Algorithms, Neural Networks, K Nearest Neighbor, Particle Swarm analysis, etc…
But first…
Mass Effect: Andromeda (2017)
Levels of Abstraction
It’s easy to build digital circuits that operate in two states.
ON or OFF
0 or 1
This is done using capacitors, which either have a charge, or do not.
0
1
Now for some math…
Given 2 states (0,1) there are 4 possible permutations of the states.
Computation implies change. Mathematically, change is done through functions. That is, a transformation you can apply to any of the above permutations to get a new state.
0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
F 0 NO
R
XQ NO
T P
↛ NO
T Q
XOR
NA
ND
AN
D
XN
OR
Q If/t
hen
P Then
/if
OR
F 1P Q
Capacitors hold the value of P and Q (0 or 1), and transistors can be set up to put a value (charge) in a different capacitor based on the rules of the function.
P Q F 0 NO
R
XQ NO
T P
↛ NO
T Q
XOR
NA
ND
AN
D
XN
OR
Q If/t
hen
P Then
/if
OR
F 1
0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Conveniently all of these functions can be created through clever combinations of the NAND function.
So engineers can build any logical circuit by making a lot of NAND components and stringing them together in different ways.
Numbers:
0 = 0001 = 0012 = 010 3 = 0114 = 1005 = 1016 = 1107 = 111
Integers:
3 = 0002 = 0011 = 010 0 = 000-1 = 100-2 = 101-3 = 110-4 = 111
Decimals:
0100 0001 1100 1000 1111 0101 1100 0011
X = positive or negative sign (0)X = exponent (2^4)*
X = significand/mantissa (1.5700000524520874)**
Value: 25.12
IEEE-754 Floating Point
1/2
1/4
1/8
* Due to exponent bias** 1 is added to mantissa in normalized values
bit
byte
What about text?
ASCII
WTF? Where are my emoticons?
Not WTF, UTF-8
Credit: Tim Whitlockapps.timwhitlock.info
128,000+ characters
Numbers again.
What about images? Sets of color.
What about color?
Sets of images.What about video?
(0,0,0) (255,255,255) (255,0,0) (0,255,0) (0,0,255)
Now for the computer to do some math…
Arithmetic Logic Unit (ALU)
Can add, subtract, divide, and multiplyCan perform logical operations (AND, OR, NOT)
Now store it!
Flip Flop Circuit
Need to be able to refresh an existing charge in order to store bits.
Capacitors loose charge over time.
Depending on input flip flops either keep their value or change it.
Source: Wikipedia
Put it all together, and you have a Central Processing Unit
Blocks of memory involved
Instruction Mnemonics
Program counter
Tick
pushl
Tick
movl
Tick
subl
Tick
leal
Tick
movl
Tick
leal
Tick
movl
Tick
movl
Tick
call
Tick
movl
Modern quad core processors like the Intel i7 4790K (500$) have a clock speed of up to 4.0GHz.
4,000,000,000 instructions per second….
Each core performs
Writing assembly code is hard.
Introducing High-Level languages:
C++ Code -> Compiler -> Assembly -> CPU -> ALU -> Function circuits -> capacitors and transistors -> 1s and 0s
Writing code from scratch is hard.
Introducing libraries/frameworks/interfaces:
http://www.codepile1.com/presentations/mimeetup.ppt
Executives
• Increase market penetration by 3% in Western Canada
Mid-Management
• Marketing initiative
• Operations Expansion initiative
• DevOps
Project Managers
• Build APIs
• Follow proper business process (paperwork)
• Create Marketing Campaign
Subject Matter Experts
• Write code
• Write copy
• Provide customer services
Politicians• Platforms
Government
• Enact Policy
• Enact Legislation
Public sector employees
• Enforce Law
• Process Paperwork
• Campaign
Citizens
• Act
• Produce value
• Vote
What is machine intelligence if not complex behavior?
Outsource tasks humans do well, to humans, let machines operate on higher levels of abstraction.
Introducing CodePile1.
Action/ServiceNameCost
DurationInput
OutputAction/Service Provider
Action/ServiceNameCost
DurationInput
OutputAction/Service Provider
Action/ServiceNameCost
DurationInput
OutputAction/Service Provider
Action/ServiceNameCost
DurationInput
OutputAction/Service Provider
Action/ServiceNameCost
DurationInput
OutputAction/Service Provider
A digital market of human capability
Action/ServiceNameCost
DurationInput
OutputAction/Service Provider
Action/ServiceNameCost
DurationInput
OutputAction/Service Provider
Action/ServiceNameCost
DurationInput
OutputAction/Service Provider
Action/ServiceNameCost
DurationInput
OutputAction/Service Provider
Action/ServiceNameCost
DurationInput
OutputAction/Service Provider
Action/ServiceNameCost
DurationInput
OutputAction/Service ProviderAction/Service
NameCost
DurationInput
OutputAction/Service Provider
Toronto Code Pile 1 Programming TCP1P Meetup
http://www.tcp1p.net
The Codepile Platform
APICommunity
You!Thank
Now for some math…
Given 2 states (0,1) there are 4 possible permutations of the states.
Computation implies change. Mathematically change is done through functions. That is, a transformation you can apply to any of the above permutations to get a new state.
P Q F 0 NO
R
XQ NO
T P
↛ NO
T Q
XOR
NA
ND
AN
D
XN
OR
Q If/t
hen
P Then
/if
OR
F 1
0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1