1,999 karma · joined January 11, 2017
PhD in machine learning (2023), array language enthusiast, amateur luthier
website: alexshroyer.com
email: contact@alexshroyer.com
Lighting affects property crime more than violent crime. It also depends on where the lights are, both in terms of neighborhood[1] and country[2].
On the other hand, lights dramatically affect how safe people feel[3] in an area, even if that feeling is not necessarily based on actual danger.
[1]: https://doi.org/10.3386/W25798
Leader: How long until you can hack the mainframe?
Techie: The other hacker is really good; at least 2 hours.
Leader: You have 1. Get it done!
[commence flying around the 3d filesystem]
Whenever I watch a scene like this, I mentally add a voiceover for the techie: [Techie thinks]: My actual estimate was 20 minutes. I can probably get it done in about 50, then I need to fly in the 3d filesystem for 10 more minutes looking busy so Leader doesn't get any big ideas. On two occasions I have been asked, – "Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?" ... I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a questionMaybe I should not be so surprised. If some core service used in software becomes 1000x cheaper, it does tend to produce not just shifts in quantity but shifts in the kind of thing you do with it. For instance, if a language's garbage collector goes from annoyingly slow to basically invisible, it wouldn't be surprising for the preferred paradigm to change.
This was the most interesting point for me. I found it surprising that changing the cost of delivering a movie could so dramatically shift company-wide priorities.
It's like Joan is Awful, but for AirBnB.
[1 2 3 ... 99999]
Which is unsurprising, but not very usable. Audio is useful!Here's a 2-layer perceptron, first in Python+NumPy:
import numpy as np
X = np.array([[0,0,1], [0,1,1], [1,0,1], [1,1,1]])
y = np.array([[0,1,1,0]]).T
np.random.seed(1)
w0 = 2*np.random.random((3,4)) - 1
w1 = 2*np.random.random((4,1)) - 1
for j in range(10000):
l1 = 1/(1+np.exp(-(X @ w0)))
l2 = 1/(1+np.exp(-(l1 @ w1)))
l2_error = y - l2
l2_delta = l2_error * l2 * (1 - l2)
l1_error = l2_delta @ w1.T
l1_delta = l1_error * l1 * (1 - l1)
w0 += X.T @ l1_delta
w1 += l1.T @ l2_delta
print(np.round(l2,3))
[[0.007]
[0.991]
[0.992]
[0.01 ]]
And again in J: input =: 4 3 $ 0 0 1 0 1 1 1 0 1 1 1 1
target =: 4 1 $ 0 1 1 0
dot =: +/ .*
sig =: {{ %>:^-y }}
train =: {{
'ignore_me w0 w1' =. y
l1 =. sig input dot w0
l2 =. sig l1 dot w1
l2_error =. target - l2
l2_delta =. l2_error * l2 * 1 - l2
l1_error =. l2_delta dot |: w1
l1_delta =. l1_error * l1 * 1 - l1
w0 =. w0 + (|:input) dot l1_delta
w1 =. w1 + (|:l1) dot l2_delta
l2;w0;w1 }}
5j3":0{::train^:10000 {{<:+:?.y$0}} each 1 ; 3 4 ; 4 1
0.009
0.990
0.990
0.011
Here's that assembler (for the Nand2Tetris assembly language) in K. It's intentionally golfed. L:({x^"\r "}'*'"/"\'0:0)^,""
T:(("R",'$!16)!!16),(($`SCREEN`KBD`SP`LCL`ARG`THIS`THAT)!16384,24576,!5),((-1_1_)'L@&i)!{x-!#x}@&i:"("=*'L
T,:n!16+!#n:?(({$[("@"=*x)&^`I$1_x;1_x;`]}'L)^!T)^`
C:(" "\"D&A D+A A-D D !D D-1 -D D-A D|A D+1 0 A !A A-1 -A A+1 -1 1")!0 2 7 12 13 14 15 19 21 31 42 48 49 50 51 55 58 63
D:$`" "`M`D`MD`A`AM`AD`AMD
J:$`" "`GT`EQ`GE`LT`NE`LE`MP
B:{,/$(x#2)\y}
P:{c:*d:|"="\*j:";"\x;"111",/(B.7,(64*|/"M"=c)+C@"A"/"M"\c;B.3,D??d 1;B.3,J??1_j 1)}
`0:({(P;{"0"^-16$,/$2\(`I$1_x)^T@1_x})[2/"@"=*x;x]}'L)@&~i @prompt("Find out if {programs} are correct.")
def do_they_work(programs: list) -> bool:
...
I just pushed it to production. Dashboard is all green. See you when I get back from vacation!E.g, if I gave them this:
def foo(x):
... #add your implementation here
def bar(x):
pass #add your implementation here
I'd get back this: def foo(x):
return x+1
def bar(x):
return x+1
pass:)
So they compete with generative AI for a fixed number of jobs. The AI is cheaper and faster. Humans stop training to become artists.
Without new training data, the generative AI models stagnate. Progress in art stops globally, forever.
But for a brief glorious moment, we were able to say "huh, that's not bad".