Embedded - 275: Don’t Do What the Computer Tells You (Repeat)
Episode Date: October 7, 2021Janelle Shane (@JanelleCShane) shared truly weird responses from AIs. Her website is AIWeirdness.com where you can find machine-learning-generated ideas for paint colors, ice cream, and cocktails (a...nd many other things). We never said they were good ideas. Janelle’s FAQ will help you get started trying out RNNs yourself. We recommend the Embedded show titles. We talked about BigGAN which generates pictures based on input images. Wikipedia list of animals by number of neurons Janelle’s book is You Look Like a Thing and I Love You. Sign up for her newsletter to get the PG-13 versions of her hilarious AI outputs.
Transcript
Discussion (0)
Hello and welcome to Embedded.
I'm Alicia White here with Christopher White.
This week we're going to talk about pink colors and ice cream flavors.
Specifically, Janelle Shane of AI Weirdness is going to talk to us about finding the hilarity of artificial intelligence.
Hi Janelle, thanks for joining us intelligence. Hi, Janelle. Thanks
for joining us today. Hi, thanks so much for inviting me. Could you tell us a bit about your
background and what you're working on? Oh, sure. So I run a machine learning humor site called
AI Weirdness. And I started that as a hobby, is still going as a hobby, a somewhat
bigger hobby than I had ever anticipated. And I came at it just because I was interested
in some of the weird things that you can get out of machine learning, a garbled version
of our own world or misunderstanding of our rules mirrored back to us in weird ways.
But, you know, the other thing I'm interested in and the thing I'm doing as a day job is optics.
And so I've had plenty of years working as an optical scientist, optics grad student and so
forth. That's actually when my blog started was back in grad school as an optics blog. And yeah, I've always just had this side interest in machine
learning. All right. So we have so many more questions and I suspect this will be an episode
that requires a little bit of laughter. But before we do all that, or maybe getting started with that,
we want to do lightning round
where we ask you short questions and we want short answers. And if we're good, we won't ask
you how and why. I am ready. Okay. I am ready. What is your favorite and least favorite ice
cream flavor? Favorite is Heath Bar Crunch from Ben and Jerry's. No, no. Fig Marscapone.
Fig Marscapone.
I just remembered that one.
They only have it like once a year.
It's the best.
And least favorite.
Ooh, my mother once made barbecue sorbet that was not that good.
Yeah, yeah.
Out of her own volition.
It wasn't even an algorithm that told her to.
What color would you paint your house?
I have painted it a lovely pale steel gray thing. I forget what it's called.
What would you in your own net have called it?
It kind of resembles snow bonk, I would say.
Snow bonk.
Let's see.
Your favorite and least favorite cookie recipe.
Ooh, favorite cookie recipe.
It's hard to go wrong with the classic chocolate chip, especially if you put sea salt in it.
Least favorite cookie recipe would be that same recipe,
but you forget to put in the baking powder and end up with the cookie.
No.
Ooh, I just remembered.
Least favorite cookie recipe that I've actually made was one of the neural net recipes, the one and only time that I am ever going to actually make one of its suggestions.
It was a chocolate horseradish brownie.
When will the robots win, and if they do, will they be merciful?
You know, the
robots have already won.
Yeah.
Do you think
they're merciful?
I don't think
it's the robots we have to worry about.
They're just doing what we tell them to.
We've got to worry about whoever told them to do the thing that they were doing.
And do you have a tip everyone should know?
Don't make horseradish brownies, no matter how trustworthy you think the algorithm is that told you to.
Don't do what the computer tells you to do. Don't do what the computer tells you to do.
Don't do what the computer tells you to do. It does not understand. It does not understand your
world. Okay, then let's go on to the normal part of our show, because we have been talking about
this algorithm and what it's telling you to do as if there were voices in our head, which seems bad. But you have a Tumblr blog
that celebrates the oddities of AI. Can you tell us about some of your most popular posts
or your favorite posts? Well, you know, I've done a bunch of these by now. I've been doing about one a week for the past two years, something like that.
And I guess the first one that really got attention or the first one that people actually started reading was one where I was generating new paint colors so this was uh putting in a bunch of names existing paint
color names from sherwin-williams into the out into like a text generating algorithm so this was
an rnn that copies just character by character the text its data set and i gave it rgb values
and i gave it the names like straight off of Sherwin-Williams.
And it started coming up with, you know, the weirdest paint color names because, of course, it doesn't have the context to figure out what these names are actually meaning or what letter combinations it should avoid.
So, like, the word Stanky was fair game as far as it was concerned. So we ended up with Stanky Bean and Horrible Gray and Burf Pink and, you know, all just terrible names.
It was great.
I loved it.
Raspberry Turd and Farty Red were the two that stood out for me.
Oh, I think Raspberry Turd was actually a My Little Pony.
Yeah.
Oh, yeah, it was.
It was a Raspberry.
I didn't realize that. It was a right yeah the pony names was another one where the uh algorithm kind of went off the rails and started
making up its own plausible sounding words that while technically pronounceable were not suitable
for use as a my little ponyony name. Ah, yeah.
Candy Hearts, that was another one that people seemed to like for some reason.
So this is, again, another complete misuse of character level RNNs.
So the data set was, I don't know, something like 200 different candy heart messages since, you know,
the messages you have on those little conversation heart things. And, you know, that's not nearly
enough data to do anything with, but it tried and it came up with, I think my very favorite heart
was the one that just said the word hole on it, H-O-L-E. But people were also fond
of the one that said
love 2000 hogs, yeah.
And there was another one that
was
all hover.
And another one that just said
you hack.
Great Valentine's
messages. I think we mass-produced that one
yeah i'm thinking about it okay so the paint chips um looking at pester pink and seeing
cyan bright bright turquoise teal blue, blue. I like saying green, which was blue. Yeah.
And gray pubic, which is also bright blue, I believe.
So these come from a data set with paint colors.
And you put them into an RNN, which is a type of neural network.
You said character level.
What does that mean? How does the RNN work?
Yeah, so this means that basically it's trying to predict the next letter in the original data set.
So you give it some example of a sequence of characters that come one after another. So in this case, it's a paint color name, and then it's a bunch of digits and spaces that will correspond to the RGB value.
And so this RNN has to try and predict, based on the last few letters of the paint name, what the next letter of the paint color name is going to be, or whether it should start doing RGB values instead.
So it doesn't have any built-in information. color name is going to be or whether it should start doing RGB values instead.
So it doesn't have any built-in information. It's not like it's got one field for here is text goes here, numbers go here, here are
three numbers, here is your range.
That probably would have been a nice thing for me to do for it, but that sounded like
a lot more work than just handing it this text file and saying, you figure it out.
And so the text file had the RGB values and then the words that went with them. And
is it like you would put in a code for red 00255 and that isn't RGB, whatever. You put in the code and then you say the correct answer is
red. And it learns that way? Or do you put in the whole thing and say, how does that work?
So it's learning from examples. So the examples that I had were things that Sherwin-Williams was saying was the correct answer.
So it would say, I don't know, 166, 119, 109.
The correct answer is lilac breeze.
And then there would be another sequence of numbers and say, okay, and the word that comes after this is, you know, sunset red or something like that.
And so this was what it was getting as an example is trying to imitate, trying to figure out, first of all, like, what numbers should it even use?
And, like, how do you even format a triplet of RGB values?
So it had to learn that.
It had to figure that out just by example.
And then it had to figure out that along with the RGB values, there is some kind of text, like things that aren't digits. And okay, which things do we use there? Like, okay,
there are some spaces, maybe there's some capital letters. So it really was figuring all this out
just by example, all the way from scratch. So if you look at what
it was generating as it was first starting out, it was just a meaningless jumble of numbers and
letters. Like there was no RGB value. There was no name to start with. It had to figure all of that
out. And so the reason it ends up with actual colors like sane green and horrible gray are because those are very common words in
it. So we got used to, well, after a G, there's probably an R and after an R, there's probably
an A or an E. Is that how you end up with actual colors? Yeah, that's how I was doing it. And so
one of the first letters it would learn, words it would learn how to actually spell was the word gray, because that came get, you know, it'd figure out more and more of these.
And as it kept going, it got,
it would actually seem to be not a hundred percent reliable,
but better at saying, okay, if I use the word tan in this name,
then when I do the RGB values,
it's going to have to have like these numbers that put it
kind of in the tan territory. Well, yeah. I mean, turdly is actually really quite
perfect as far as its color goes. I think that was a coincidence. I don't think it had any examples
of what RGB values go with the word turd. But there are some that are just letters.
I mean, Dondorf, D-O-N-D-A-R-F,
just sounds like it didn't find a word.
It just...
I'm pretty sure it's a Legend of Zelda character.
Yeah, I think so.
It is now.
So it is just the letters.
There's no word part here.
Right. And that was another option that I could have gone with, is there are versions of RNNs that work on the word level instead.
So instead of predicting the next letter or number in a sequence is predicting the next word.
Yeah, I remember Robin Sloan, when he was on the show, talked about being able to generate
stories that way. And they were nonsense, but it was fun to be able to just, you know,
after the word once should be upon and then a time sort of word level. And so can you tell us what an RNN is? Is it,
I mean, I use a lot of neural networks and I mostly use convolutional neural networks,
which is a thing we use for images, but RNNs are different. Can you tell me how?
Yeah, you can think of an RNN as, you know, if you've ever played the parlor game
Exquisite Corpse, it was all the rage in the early 1900s. Well, in that, yeah, okay, maybe not. But
in that game, the idea was you would have a, you would have this piece of paper that would get
passed around the room, and everybody would, when the paper got to you, you would add a word to what was already written. And then you would cover up
one word at the very beginning of what was already written. So each person who gets this piece of
paper only sees this last few words that were written. And that way you generate a story that
may or may not make sense and probably wanders around all over the place.
And so the sort of sliding window that it's using to look at the text that it's already written and say, OK, based on this text that I have already written,
what is going to be what do I predict is going to be the next number or letter or whatever in
this sequence? And how do you decide how big that window should be? So often it's based on
how much your computer can handle. So when I'm doing something like cookbook recipes,
for example, I would like to give it as much memory as I possibly can so that maybe it would still know something about the first ingredient by the
time it starts writing the directions. And ideally, I would love it to be able to hold the whole
recipe in memory. But unfortunately, that does make the model a lot bigger. And so usually I'm limited to a memory of about 50 characters,
something like that, 50, 75, somewhere around in there.
And so that puts an upward limit on the memory I can give it.
Sometimes when I'm trying to get interesting effects
out of a not very big data set.
I will deliberately give it a really small memory.
So I have an experiment where I was having it generate Disney songs using a really small memory.
And if I gave it a long memory, then it would memorize entire Disney songs.
That would be no fun.
I'd just get them back word to word. But if the memory was short enough, then it would have no idea
what song it was in the middle of singing. It also had the side effect that if it was singing
like hi-ho, hi-ho, it would just keep singing hi-ho, hi-ho over and over and over again.
I have no idea how many times it had already sung it.
I feel like we've managed to pretty accurately simulate the human brain under the influence of
spicy food and stomach upset in the middle of the night.
Hi-ho, hi-ho, this happens.
Just repetitive nonsense.
Well, I mean, sometimes the nonsense. Well, we draw meaning from it, but it's also kind of, it's like watching something else hallucinate is what I'm trying to get at, right?
Yeah, you know, reading its dream summaries. Now that's really weird.
I've got an upcoming project where I fed it the entire contents of this big bank of dream summaries.
Like people just, I don't know, went to this database.
Oh, yeah, last night I dreamt that something or something, that's the whole story.
So I've got the neural net trying to imitate that. And yeah, it's even less coherent than the humans, but sounds pretty much like a human telling you all about their fascinating dream you had last night.
And you zone out like one sentence into it because it's not making sense anyways.
Yeah.
So back to the neural network structure, just because I want to make sure there's some tech before I start talking about this black banana cocktail. The R is for recurrent. Is that okay? I was pretty sure.
And so when you talk about memory, this is feedback. Like you put in data and that data
stays in the neural network. It goes from the output back into the input.
Is that sort of how it works?
Like if you were drawing a sketch of it?
Yeah, you can think of it as feedback
because it really does look at what it just wrote
when it tries to figure out what it's going to write in the next step.
So that's true.
And then there are other kinds of feedback that people can build in.
Like there's a long short-term memory type thing, LSTM, you'll see sometimes. And that's like an extra few bits of information, little bits of information that the neural net can use for storage. And that does not expire as the little sliding window progresses. It actually will stay in memory for longer.
And it's a little bit mysterious how, if how the neural net decides to use that.
I've seen maybe some evidence that it can use it to keep track of quotation marks,
because I've seen it close quotation marks or close parentheses that ought to be outside of its memory.
That's awesome. Okay, so you have done this for a number of things. There's the paint chips,
there's cookies, pies, but there's also cocktails.
The one I'm looking at is called the black banana.
Yeah.
One and a half ounces of gin, a half ounce of dry vermouth,
ounce of cream, ounce of creme de cacao,
half ounce of creme de cacao, rum, lemon juice,
half ounce of creme de cacao, triple sec grenadine,
half ounce of creme de cacao, half ounce of amaretto. One of the very first instructions is add gin.
Okay, we have gin, vermouth, yeah, yeah and pineapple juice which isn't in the recipe yeah yeah that's the thing about that
lack of memory that it does not remember what went on earlier in this recipe it is guessing
and in fact the memory that this particular one had when it was doing the black
banana i think it was only something like 20 characters long which means that by the time it
is written out one half ounce creme de cacao it has no idea and it starts again writing one half
ounce and it's going to add something else by that point it does not
know if it just added creme de cacao and so it says well what should i add oh i know creme de cacao
over and over again yeah it's just as likely i guess why is this so funny i mean it is it is
hilarious but it's hilarious for reasons I don't understand.
I mean, there's no banana. How is this funny? Well, you know, the recipes in particular,
there's this implied physical comedy, which I always really like. And then it gets heightened
when somebody actually does make the thing like there was a
scavenger hunt last year where people were dressing up as robots and making some of these uh making
some of these recipes and you would see yep sure enough they're adding all these terrible ingredients
and then throwing half of them out and i think my very favorite recipe was this one called small sandwiches and it's got maybe a page of
instructions like really fiddly instructions like you're julienning carrots and then you're
chopping some other carrots and then you're slicing some other carrots and you're you know
you've got all these different you know oh yeah you you mean you're adding bunches of different
copies of the same ingredient but maybe they're cut in some fussy way.
And then at the very end of this long 30, 40 ingredients, something like that, then the first step of the directions is place funny to me is because I immediately imagined some hapless, very intelligent robot that doesn't understand humans or human behavior or food or anything at all.
And it's just trying, it's like, oh, this is what you guys do, right?
Okay.
And so, that's what comes to mind to me.
And so, I imagine this happy-go-lucky robot.
Well, and then you julienne the carrots and then you cube the carrots and then you fry carrots, and then you put them in a blender for two hours, and it's fine, right?
Yeah.
But I don't know what other people think.
I think there's also this tension.
I know because we know it's a neural net, that makes it all the better. Like it would not be the same if somebody, like if I had just made these things up or,
you know, selected it from a, a array of options that I was presented or something like that.
No, it's the, and there's this kind of tension between what we hear about artificial intelligence,
you know, in movies and science fiction or what you get some,
you know, grand salesmanship around AI. And then this is an AI and you see, oh, you know,
it actually does not understand what's going on. It doesn't understand what's happening to these
ingredients. You know, this idea of it's a blank sponge mind. You just give it the information and it'll understand our world. This makes it very clear that that's not a, you know, all society eating super mind. It is just a little
box with about as many neurons in there as an earthworm has. And it's trying its very best
to understand, but it hasn't a clue. And so we're expecting Terminator and self-driving cars,
and we're getting an ice cream with a double scoop of bug and peanut butter slime.
Yeah, we're getting pumpkin trash.
It's a fair tradeoff, I think.
It's a fair tradeoff.
Yeah.
So the ice cream, this actually started with middle schoolers?
Yeah, that was the middle schoolers was the ones who made that project possible.
So their teacher contacted me and said her coding class had been reading my blog, and they were interested in doing coding projects.
And then they saw I had linked to TextGen RNN, which was fairly easy to install.
And so the class just installed it and then decided what they really wanted to generate was ice cream flavors.
And what was cool about this is that I had looked before, actually, for a training data on ice cream flavors.
And there really isn't anything. Like, nothing collected
all in one place. You have a few flavors at hundreds and hundreds of ice cream places across
the country, but you'd have to, you know, hand collecting that would take forever. Unless, as it
turns out, you are a class of highly motivated middle schoolers who all divided up this cut and paste work and put together this beautiful data set that was much bigger than anything
that existed.
This was all just an excuse for the kids to drag their parents to ice cream
places, wasn't it?
I would be disappointed in them if they had not managed to get some ice cream
out of this somehow.
And so they built the data set and...
They trained a text gen RNN on it.
And then they did the same thing that I do,
which is generate a whole bunch of flavors
and comb through them looking for their favorites.
And so the teacher, when she emailed me,
she also sent me the favorites of the middle schoolers.
And there were some that, you know, she said,
oh yeah, the sixth graders had liked one style seventh graders like one style the eighth graders tended
to like another style so it was interesting too to see like this uh i don't know if it's evolution
of humor or you know something like that but the different classes all had their different tastes
and so if you look at the output
from the same neural net, depending on who collected it, you get these three different
effects, which I also thought was pretty fun, fun illustration of really the role of the actual
programmer, the actual creative role that the human has, even when it's an algorithm that's
generating all the words. And while it's a lot more fun to look at the mistakes, it did an okay job. I mean,
some of these sound like good flavors. Cherry, cherry, cherry. Holy lemon monster. I can
actually, you know, I could do that. Honey, vanilla happy. And it's Sunday. Those all sound really, yeah, okay, I can get into those.
And yet, I, of course, scroll down to the immediate, oh, my God, cookies and green.
Gravy cashew.
See, that one's great because it rhymes with cookies and cream.
Yeah.
Snake vanilla cream cheesecake.
Snake vanilla. I. Snake vanilla.
I don't know.
And the 13-year-olds thought that death was a good flavor.
Yeah, that's nice. of many of your posts is uh an offer for people to sign up for your newsletter which includes the
pg-13 flavors how do you end up with those well you know this goes back to the fact that it's
building up these flavors letter by letter so it's's doing, you know, it's just coming up with, well, what
should I put after this A? And what should I put after this S? And any letter is technically fair
game. And it tends to come up with common sound combinations, like, oh, if I do an S, then probably
an H is likely to go after that. And, you know, S-H-I, that should be pronounceable.
And you can see that it can proceed there to spell certain four-letter words that aren't in its original training data.
And so, I mean, it's funny when it does that.
But I also want to keep my, especially the one for the sixth graders, want to keep the actual things that go on the blog more PG rated.
That makes sense.
I guess I'm sort of disappointed to find out it's just letters.
I want it to come up with these things.
I want it to have a sense of humor.
Yeah.
I think the humans supply the sense of humor. Yeah. I think it's
the humans supply the sense of humor
and this thing supplies the surrealism.
Do you think
you could take all of
the hilarious
ice creams and all of the normal
ice creams and
then train a neural network
to identify hilarious things um it could that's an
interesting idea like how can it tell the difference between the real thing and a neural
net thing i mean it might be it might become a fart detector because the word fart does end up in the you know the sort of comedy version yeah
somewhat plausible letter combination four letter combination so i think that's how
so you may get a neural net that is keyed in looking for words that humans find funny
i don't think it would be able to detect puns like these ones, like the cookies
in green, for example, that are like, it's funny because there's a pun in there. From all evidence
that I've seen, these neural nets are very bad at generating puns, and I doubt they'd be very good
at detecting them either. So yeah, I think it would be looking for certain words,
and then other than that, it might be guessing.
So other than entertaining us, what are these neural networks good at?
I mean, this does sound like just fun.
What are people using them for? Well, the text generating neural nets,
like the ones that I work with, yeah, I think fun is basically the main application for these. I
mean, you have people like Robin Sloan who are using them to write literature, and that's kind
of cool. It ends up being this tool that's kind of an aid to the author.
So he's having a complete sentences for him or having it generate images.
Oh, yeah, that's kind of nice. I would not have thought of that. He puts it in.
So there's that as an application. But like you wouldn't want one of these talking to customers, for example.
That yeah, that would not be a thing that you would want
these things to do. I mean, there are kind of machine learning based algorithms that are
generating news stories and generating Wikipedia articles. So for certain types of like really
highly constrained technical writing, they can put together a pretty good first draft or at least some kind
of a starting point. So for the Wikipedia articles, for example, they will go scour
for the web for citations by a particular scientist who doesn't have a Wikipedia page yet.
There's a project I think is called Quicksilver, where they basically got this set up with an algorithm
that comes up with these draft Wikipedia articles for scientists. And it's usually,
they're focusing on women who tend to be really underrepresented on Wikipedia.
So they're coming up with these draft Wikipedia articles about these scientists,
and then a volunteer editor will look at this article and fix all the inevitable mistakes. But at least there's a starting point,
at least there's references and things to check on so that you're not starting from scratch.
So I think that sort of application for a text generating neural net where it's giving you
draft articles, or in the case of these newspaper articles, it's giving you draft articles or in the case of these newspaper
articles it's giving you like really formulaic interpretations of a local election or of a local
sports event those are sorts of things that people are using them for right now already
but this sort of free form text having it try to come up with something
creative that's usable or talking to someone, no, you would not. Yeah. I mean, the frequency with
this thing takes an innocuous data set, like My Little Ponies, and manages to come up with a pony
called Raspberry Turd or, you know, a pony called Blue Cuffs.
Like this sort of gives you a hint that these things should not be allowed to talk to customers unsupervised.
You mentioned the program that the middle schoolers used, TextRNN. Is that right?
TextGenRNN.
And there's another one you use, CharRNN.
That's right. Yeah. And there's a couple others I've used as well. Uh, there's one that generates words, syllable by syllable, which is
kind of fun for a big data set sometimes. If I wanted to try this, what do I need? How do I do
this? If I want, if I want to do sit home, what do I need? Well, I've this? If I want to do this at home, what do I need?
Well, I've got an FAQ page on my site. So aiweirdness.com slash FAQ. And I have links to
some of these, you know, some of these algorithms. And you don't need much. So when I'm running most
of these, I'm running it on my laptop. And for a while, for
especially a lot of my early experiments, that was a 2010 MacBook Pro. And it was just running
on the CPU. So I needed patience, but that was about it. Right now, if you want to use TextGen RNN, there's a version of it that's on a
collaboratory notebook that's powered by Google.
So Google's basically donated GPU time for these collaboratory notebooks,
which means that you can run this thing on a much faster computer without having
to install any code or anything.
So that's a really nice way to just try it out
with some data set and just get started. But the data set, I mean, I guess there are some online,
but those are boring because people already have done those. How big do I need a data set to be?
How many ice cream flavors did you have to start with? Well, when I first tried
it with 200 flavors, it did not go very well. 200 is a ridiculously small amount, actually.
The middle schoolers had 1,600 flavors, which is also pretty small for a neural network training data set, but it was enough to get to generate some really fun
flavors. So I would say once you're, if you're just generating like a word or two,
then a data set that's in the hundreds to thousands will be all you need. If you're trying to generate phrases or even sentences,
then you're going to need a lot more data for this thing to even start making sense.
You're going to need a lot more data and a lot more memory inside the RNN.
Yeah, that's true. So then the more memory you add, the slower the training process goes.
So you could end up, you know, running this thing on a GPU and still having to run it for hours or days on like a really big data set. these the ones that people are publishing is more like oh they had a month on this super powerful tpu
multi tpu machine or something like that and they trained it on all of amazon reviews so i don't
know like 10 million product reviews on amazon like someone did that and they came up with
sentences that are a lot more coherent than anything I have ever managed to generate in sentence form.
So there is something to be said for having a lot of just computing oomph to throw at the problem.
How does this not count as plagiarism?
It would be plagiarism if it was copying the exact you know if you were copying the exact stuff
the so if i was saying look it came up with this great ice cream flavor and it was one from the
input data set that's boring and and i'm not sure if you can copyright an ice cream flavor, but that's beside the point. It's just boring.
It's more if I did this with a term paper, more like what you were saying with the Wikipedia entries.
If I did this with a term paper myself and I needed to write a term paper about Finland,
and I took all the papers about Finland I could find and put them through an RNN.
I might get something that was both about Finland and possibly mostly sensible.
Not at this point.
I think that the amount of work you would have to put into this project of generating a Finland paper
and especially fixing the mistakes at the end.
Because of course, the thing doesn't know if it already told you the population of Finland.
So it's going to tell you the population of Finland like three or four times. And you're
going to have to go through and line edit this thing and say, oh, the population of Finland is
this. I will leave this one up front because
you'll have to supply the structure and edit it that way. And I think by the time you do all of
that, you will have done as much work and understood about as much about Finland as if
you had actually written a paper from scratch. So fair game. Like if I was a teacher and a student
went that result, but ended up with a coherent per on Finland at the end, I would have to give them credit for it, for writing the thing.
All right.
I'll buy that.
I really will.
Yeah.
I mean, if you started looking at it and you say, oh, no, this thing was actually copying full sentences, which it can tend to do, you do have to watch for that.
So that is the flip side. As far as
these algorithms are concerned, exactly copying your input data word for word is a perfect
solution to the problem that they're given. So if they can possibly do that, they will.
And that's part of why you need so much data is to stop it from being able to memorize the
whole thing. Yeah, that's an overtrained neural network.
Yeah. Oh, yeah. Overfitting is can be boring.
It's funny that it's boring in this context. And it's terrible in many others.
Yeah, I mean, I mean, we're talking low stakes here.
It's one of the reasons it's good to play on this because it is fairly low stakes and you end up with funny things, but you're not crashing a car.
You also do images.
How do images work with an RNN?
I'm not generating images with RNN. So I do have some projects on my blog where I am exploring or writing about trained neural nets that other people have done.
So the BigGAN neural net that Google recently trained, that I have written a couple of articles on it just because the images they can get out of it
are so cool and there is definitely some you know artistic fun to be had or some interesting
things to be said if you dive into their data set and look in detail at some of the images that it
generated or look kind of work on generating your own images that are kind of
between the image categories that was trained on there's a lot of interesting nuance and stuff
there and so I've written about that one there is another one that before we go on I want to talk
more about the results you got from this one sure I mean I mean, these are really scary pictures.
You searched for microphone.
So how did the microphone one,
which is a picture of an incredibly scary person,
maybe somebody who came from Pan's Labyrinth, that's holding an instrument and
has maybe extra arms.
Christopher's looking over here.
Yeah, that's the thing that happened.
People, humans are tough.
So did you just type into the Big GAN and say, show me a microphone?
Or did you?
In that particular case, yeah, it was, give me your best shot at generating a picture of a microphone.
And of course, the images that it was looked at, that looking at that were labeled microphone had all sorts of, you know, maybe it was a close-up of the microphone or maybe it was somebody just holding a microphone.
They were usually on stage with this kind of harsh stage lighting and dark background.
So that's what it ends up making. much variety in the pose then it doesn't really have enough information to figure out that the
microphone is the silvery thing that sometimes like really small and almost invisible in the
picture it was trained on so it thinks all of this is microphone so it generates the person
and sometimes it generates the crowd and the lighting and things like that but there's so
much to do and so much to keep track of that it doesn't really have the resources to focus on just getting the microphone right or just getting the pose of the person holding the microphone right.
Like if we made it easy on it and we gave it just pictures of one person holding a microphone in the same position, it would get really good at it. And this is sort of the principle behind if you see the NVIDIA results on like NVIDIA celebrity faces and things like that,
they actually are approaching photorealistic and actually really convincing at first glance.
That part of why those looked good is because they're all zoom in pictures of human faces cropped very tightly around the head
and there's all in the same pose and so it's able to keep track of all that they're much
narrower problem than having to try to learn all the different ways you could position them
on your phone that makes sense and some of those i've i've read some articles about how to discover if you're looking at an image that is neural network generated.
And it's like, well, you look at the hair because it can't do hair because hair is pretty confusing between even the same person shot at the same angle on a different day will have different hair.
And so that's a tweaky thing.
Instead of going on with that, I want to ask you about the teddy bears.
The teddy bears.
The big-ganned teddy bears.
I mean, a teddy bear has a nose and two eyes, and it doesn't have this many heads.
Nope, and not usually.
Is this back to ages?
I saw lots of different teddy bears, lots of different stuffed animals marked teddy bear,
and some of them were pink and had their guts pulled out.
Well, you never know what's in that data set.
There can be a lot of weird stuff in there. It if you see it's generated spiders,
they've got like 50 bazillion legs because it didn't know where to stop.
And if you look at its clock faces or watches, clock faces,
like those will have lots of extra hands.
Like it'll have hands that branch sort of like a, you know,
weird twig or something like that. And so it looks like
a clock straight out of a dream or something. And this is all this tendency of these neural nets to
be focusing on small areas of the image and maybe not synthesizing together. You know,
if we've already generated one head for this teddy bear maybe we
should not generate another one if we've got one over here how can you i mean is it possible to
introduce that kind of state or yeah people are definitely yeah people are definitely working on
that trying to make trying to make algorithms gans that can keep track of where things are or try and put the subject in the center of the picture.
Yeah, there's a bunch of other tricks that people are using to try and improve this.
Yeah, and the results look so Salvador Dali-ish.
Complete with melting clocks.
Yes, they keep melting the clocks here.
Yeah, and the lettering I really love too. Like there's a certain look to GAN generated text
where it's not any identifiable script, it's not any identifiable words that it's generating or
anything like that. It just kind of looks like squares and lines and
kind of melty and kind of blurry like i would that's kind of what i would imagine text in a
dream to look like so it's really yeah it's really cool to think about the similarities actually
between you know neural nets lack of memory and your sort of dream states lack of memory and your sort of dream state's lack of memory as well. And, you know, people are
finding and or building in some similarities, like taking some ideas from dreams as they're
building neural nets. And so there is definitely some deliberate playing off the idea of dreams,
too, as people are generating these things or building their algorithms.
Looking at the NVIDIA implementation of their identifier networks, where you show it an image and it says what it is, about two years ago, I just, I started thinking, yeah, okay, this is actually working. I mean, even as it wasn't working that
well, it was working very well compared to what I expected. Do you think, I mean, you said you
thought robots had already taken over the world, but do you think, do you think AI really will be
in charge? Do you see a singularity in our future?
Well, you know, there's future and then there's science fiction. And, you know, it's kind of
tough to imagine in the very far future where we possibly could go. But I think when we're talking about neural nets or AI that or the neural nets that these publications are using,
they are, you know, they have a bunch of virtual neurons, but maybe numbering in my case in the
few hundreds, in some cases, maybe in the few thousands. But that puts you right about at a
jellyfish level of number of neurons.
And if you compare that to a person who has a few, is it million or billion neurons?
Anyway, it's way, way, way more.
And these neurons have feedback in way more complicated ways than we've been able to implement with our neural nets. So I think if you just kind of look at the scale and complexity of what a human brain is doing and then what today's AI is capable of,
there's this just leaps and bounds difference.
I mean, we are really talking about the difference between what we have
and what Star Trek has.
So I don't worry about these things getting smart enough to, you know, be thinking
for themselves and making decisions and judgments the way a human would.
In fact, what I think is probably more scary is that they aren't as smart as we think they
are.
And so you get some people who are entrusting them with decisions like who gets parole, for example, or screening resumes and things like that, where we're expecting them and thinking that they can balance a lot of nuanced information and that they can understand, you know, text, they can understand sarcasm,
they can understand context, and then they come up with an answer and we're treating it,
the answer as if it must be objective and fair because it came from an algorithm, not from a
human. But what we don't realize is these things don't even know what fair and objective is. They have no concept that these numbers correspond to people.
And they really still have a tough time comprehending the nuance of language.
And so what we end up with is algorithms that we think that we're giving them the goal of weigh the pros and cons of all the different qualifications on this person's resume and come up with a prediction of how good an employee will be.
We think we're giving them that problem to solve.
But what we're really telling them to do is copy the humans.
Copy the humans in your training data set.
What would they have done? And as some people have found out,
as Amazon found out with one of their kind of prototype resume screeners, what this thing
had learned was don't hire women. So it was going through and penalizing resumes that
named women's college or had the word women's as in, you know, women's soccer team or something on it.
So this shows you, you know, this thing, as far as it knew, this was what we had asked it to do.
It was just trying to copy the humans.
And it didn't know that copying the gender discrimination is not what we really had in mind.
But I think the danger right now is that we've got algorithms out in the world that
are making important decisions that are making these decisions based on racist and or gender
biased training data, and that people are trusting their judgments rather than checking their work.
Going back to what you were saying before about number of neurons, I certainly don't want a jellyfish sitting on any judicial bench.
Sure. I'm not sure that that doesn't go with your brand.
I know. I do like jellyfish.
I mean, your entire government would be populated with jellyfish, nudibranchschs and octopi well i mean a nudibranch has 18 000 neurons a jellyfish only
has 5600 watch me check check me out on wikipedia oh yeah i visited that page humans have a hundred
billion with a b but most of them aren't very good
and this whole you only use 10 of your brain thing is totally debunked that is not true
so stop saying it and even 10 of 100 billion is a lot is way more than this little jellyfish has
so i think yeah what makes ai look smart is when you give it a really, really narrow problem to do. Like if you're
NVIDIA and you tell it to just generate faces of celebrities, wow, it does a really good job.
It has no idea what's below the neck on these celebrities or that people even have bodies.
That was not a thing that it had to learn to do. So it makes it look smarter. The more you give it
to do, the more you see the difference between its performance and performance of like an actual human with all those neurons.
So some of these problems come about because of inherent design limitations, number of neurons, style of neural network.
We talked about recurrent neural networks and the generative, I don't remember what the A is for, the GANs.
Adversarial.
Adversarial.
And I think on the show before, we've talked about the CNN, the convolution neural networks, where you have different layers for images and you can talk about edges.
So those are all inherent design and limitations.
But then you also mentioned the biases that Amazon was recently highlighted for,
and they are not alone.
They come about through the training.
That's not a limitation in the design.
That's a limitation in the input.
Yeah, that's definitely an important aspect.
How do we identify which problems come from each?
I feel like the whole AI weirdness thing is very helpful in identifying
that there are problems and that the problems come about in different ways.
Which problems come about through training versus the inherent design limitations of neural networks?
So there's, yeah, you get problems that arise from all of these things. I mean, you've got the training data that has the bias in it, and then you have neural nets that don't know enough to overcome this bias because they're, you know, brain of a worm. They're not going to be able to figure this out for you so i it you know there are yeah there's multiple
levels here and you just have to check like uh i think screening the outputs of data of these uh
big data crunching algorithms like especially the ones that are making important decisions that are
going to impact people i think uh screening those for known kinds of bias and just, you know,
running through a bunch of statistics and looking like, did it pick up any bias?
I think that should be a regular part of rolling out any of these algorithms. And if picked up
bias, then you say, okay, there was something in this data set. Let's go check that out.
Like for the, when I was generating cookbook recipes, I was seeing both kinds of errors at once. But then
I would also see that this thing would be spending a lot of its brainpower trying to
figure out how to format ISBNs and recipe sources and websites. It learned how to format a URL and all this extra stuff at the end of a recipe because
I hadn't told it not to. Or other things I would say, oh, ingredients, one electric mixer. And I'm
like, ha ha, I thought an electric mixer was an ingredient. But then I went back and looked at
the training data I had given it. And sure enough, there were some recipes in there that were calling for ingredients like one electric mixer.
Do you use AI weirdness to expose the algorithmic and data bias? I mean, is that part of your goal?
Or are you just having a good time?
This has been to sort of illustrate through these really approachable human understandable data sets
just how little these algorithms understand about what they're doing, about the data sets they see,
about humans, about our world. And so I'm hoping that that helps people to see that these things actually aren't all that smart and also to intuitively see,
oh yeah, I can totally see how it would pick up bias from its data set. That's totally something
we should work on. And this is all a hobby. You work with optics. How does that relate
to neural networks? Well, it relates in only tangential ways, actually.
So actually, one of the things that I'm working on is a programmable hologram.
So you can actually like a computer-controlled engineered mice whose neurons are sensitive to light.
And so if you zap the neuron with a microscope but on a track bar in a virtual
reality maze or and and looking at things you can start to do experiments with active selectively
activating different neurons as the mouse is going about its business and that's where the hologram
comes in is create turning your laser beam into hundreds of different laser beams that you can use to zap whole groups of neurons at once.
And so people are starting to do experiments that can illustrate some of these different layers in the actual biological neural networks in a brain and figure out how those work together. And so it's
been really interesting to see some where the similarities are between those and what we're
using in the artificial neural networks. So that's cool. And that's one tie in. Other times when I've
tried to do tie ins, actually, I usually end up starting out thinking I'll solve a problem with some kind of search
algorithm or some kind of, you know, machine learning type thing. And then as soon as I
understand the problem well enough, I realize, oh, now that I understand what's going on,
I don't need to use this algorithm anymore. There's a formula from the 1960s that solves this problem very neatly.
And I'll just use that.
Boom, done.
Yeah.
So where do I sign up to work on virtual reality for mice?
Because I'm in for that.
I think I'd be good with that.
I think I could really create a good mouse environment.
Do you do augmented reality for them too?
Sometimes.
There's like whisker brushes.
So for them, like whisker brushes are a really important part of their reality.
So actually like flicking their whiskers can be a big part of making it seem like they're actually in a maze.
And then I had also a short, sadly short-lived project where we were building a virtual reality arena for mantis shrimp.
And that was a lot of fun.
So if you're not familiar with mantis shrimp or if your listeners aren't, are these little uh stomatopods that are like
they they look like tiny little crayfish or lobsters or something like that cross between
a crayfish and a praying mantis and they're like the t-rexes of the underwater world so they're
predators some of them are really brightly colored they can punch holes in clams to eat them. The big ones can punch holes in your aquariums.
You have to keep them in special aquariums. They're called thumb splitters sometimes.
Like they're these really badass creatures. But one of the things that's most fascinating about
them is that their eyes are weird and really, really complicated. Like they've got these two eyes on stalks,
and each eye by itself has binocular vision,
and the eyes move independently and can track prey independently,
and they have polarization vision as well,
so they can see the different directions that the light waves are traveling
and they can see kinds of polarized light that basically no other animal can there might be a
couple others that can see circularly polarized light but maybe not so their eyes are really
interesting but we don't know like how are they even using this information like we know
some of the stuff that they should theoretically be capable of detecting, but we don't know whether they're
actually using polarization information to track prey, for example. It could just be accidental,
and maybe they're not even paying attention to that information. So, that was where building a
virtual reality arena for them came in, because then we could show them little movies made in polarized light and say, okay, is it tracking the prey animal now?
If it's only, you know, the only contrast is that it's a different polarization.
Can it still see it?
Is it still want to eat that?
I'm just the mental picture of a little mantis shrimp with a tiny HTC Vive on.
It's just really...
But mantis shrimp also see colors we don't.
How can you provide those?
So they can see into the ultraviolet.
They can see into the infrared.
And our puny little RGB screens aren't going to cut it.
Like we have these three red, green, blue
values that can trick us into thinking we're seeing basically any color of these rainbow.
And with these guys, RGB is not going to trick them because they can see all these other colors
in between. They're like, well, where's the the infrared color this is clearly not a natural environment here so we were we were looking at actually making a display that could have all
these other colors in it and could have polarization light light polarization modulation
like really advanced system that's that's that's not even a multi-thousand dollar display. That's a really
wow display. Yeah. So this was funded by the insect research lab at the Air Force,
because they are really interested in how small eyes can see and detect stuff and so you know that that's how come there was actually
funding funding to do this so along with studying insect you know they're they fund a lot of insect
research basically or insect vision research and so they were funding this that i mean okay i just
vr for yeah christopher's also giving me the time signal because I'm, he knows that I'm sea creatures.
You can do VR with sea creatures?
What about octopus?
So, and I shouldn't, I really shouldn't.
So let me, let me ask you a final question.
And that is, that is, what is the name of your cat?
We've been hearing him a little bit.
Okay.
I just want people to know.
Her name is Char, as in Char, R-N-N, but that's a coincidence.
Yeah, I'm not surprised you were hearing her because she's a 14-pound giant tortoiseshell cat.
There was some purring.
And you do say it, Char, R-N-N, not car.
Yeah, that's how I say it.
I don't know. I never see these things, you know,
I see these things written down. It's like...
It's just funny. Somebody's going to email us and say, no, you're pronounced a car. But I don't care.
We'll delete it.
Charlie's fine.
We'll delete the email.
We'll delete the email.
Don't forward that one to me.
I have really enjoyed AI Weirdness. It certainly is one of those things that I look forward to when they come out because it is almost always a giggle fest.
It was hard to prepare for the show because I kept getting lost.
There were so many things we haven't talked about.
You did parliamentary motions that are just hilarious and snake names.
So many things.
So I really encourage listeners to go check out Janelle's website. But before we close up the show, Janelle, do you have any thoughts you'd like to leave us with? I also have a mailing list that we mentioned where you get all the really good stuff.
That is the stuff that I couldn't quite print or wasn't quite willing to print on my main website.
So if you get on that list, then you can get the bonus material each week. Or if you just want it from one week, you want to see the unprintable pub names, for example, which are remarkably unprintable if you're in the United States. Some newspaper in
UK did print them, but then you can just sign up for that one and be on my like once in a while,
like I won't ever bug you. I haven't ever used it so far email mailing list, But in the next couple of months, I will use it to announce my upcoming
book. I am writing a book on artificial intelligence, and it's going to be
really pop culturally, lots of cartoons, lots of jokes, lots of really weird examples. It'll be
called You Look Like a Thing and I Love You. And it's going to be coming
out later this year. So if you get on my mailing list, you can be the first to know when that's
available for pre-order. You Look Like a Thing and I Love You? Yes, that is straight off of a pickup
line that a neural net generated who was trying to do pickup lines.
And that was actually a pretty good attempt.
It was better by far than any of the training examples that it had.
And little cartoons that are on the ice creams and on the cookies and all of these things.
Do you do those?
Yes, I draw most of those myself.
Oh, thank you so much
Janelle thank you for being with us
oh thank you so much for inviting me
this was a lot of fun
thank you to our patrons for Janelle's mic
we really appreciate your support
and if you'd like to support the show
go to embedded.fm and hit the support us link
on the top bar
thank you also to Christopher for producing
and co-hosting and
you for listening. You can always contact us. If you haven't figured out how yet, you'll figure it
out. And now one of the posts we didn't talk about was Janelle's joke generator. So I have a couple
of jokes for you. How many engineers does it take to change a light bulb?
A star, an alligator, and because they are bees.
What is a neural net's favorite pastime?
A bacon on a book with a rooster.
And finally, what did the neural net say to the programmer?
A joke.
Embedded is an independently produced radio show that focuses on the many aspects of engineering.
It is a production of Logical Elegance, an embedded software consulting company in California.
If there are advertisements in the show, we did not put them there and do not receive money from them. At this time, our sponsors are Logical
Elegance and listeners like you.