needed. But I am excited. It really has the potential to be something something cool. Alright,


EfficientZero: Mastering Atari Games with Limited Data (Machine Learning Research Paper Explained)

that was it from me. Thank you so much for listening, watching. Let me know what you think


Why AI is Harder Than We Think (Machine Learning Research Paper Explained)

Hello there, welcome back. Today we're going to look at why AI is harder than we think


by Melanie Mitchell of the Santa Fe Institute. This paper argues that the cycles of AI spring


and AI winter come about by people making too overconfident of predictions, and then


everything breaks down. And Mitchell here goes into why people make these overconfident


predictions. She outlines four fallacies that researchers make and details them and give


some suggestions of what can be done better. So it's a bit of a different paper than we


usually look at, but I'd still be interested in your opinions. Let me know in the comments


what you think. Share this video out and of course, subscribe if you're interested in


machine learning content. Alright, why AI is harder than we think. In the abstract here,


Mitchell makes the case that since the 1950s, when AI was sort of beginning to develop,


there were repeating periods of what are called AI springs, which are periods of optimistic


predictions and massive investment. And on the other hand, periods of disappointment,


loss of confidence and reduced funding, which are called AI winters. And she says, even


today, where AI has a number of breakthroughs, the development of long promise technologies


such as self driving cars, housekeeping robots and conversational companions has turned out


to be much harder than many people expected. And she says, one reason of this is our limited


understanding, she says, of the nature and complexity of intelligence itself. And there


are four fallacies she describes in common assumptions, which can lead to these overconfident


predictions. So if you know anything a little bit about the history of AI, you are aware


that this there is this cycle of these springs and winters. And this has been the case from


the very beginning. And she outlines very clearly here, that, you know, when, for example,


the perceptron was invented, people thought, oh, we're going to do all of this extremely


cool things here. Claude Shannon, right? said, I confidently expect that within a matter


of 10 to 15 years, something will emerge from the laboratory, which is not too far from


the robots of science fiction fame. Right. And Marvin Minsky forecasts that within a


generation, the problems of creating artificial intelligence will be substantially solved.


So this is due to the fact they saw real good progress in a very short amount of time. And


they just extrapolated that progress. And that did not turn out to be the case. And


then of course, there was a winter a downturn in enthusiasm after all these promises didn't


materialize. Then again, in the 1980s, there were more, more AI systems coming up, there


was a upswing again, and a disappointment again. And then in the 1990s and 2000s, finally,


machine learning was introduced, by the way, the 1980s, the time of like expert systems.


So people, first people develop the, yeah, the perceptron and thought that was the that


was the the best. And then expert systems, people thought if we just kind of develop


these rules and have these rule solvers and sort of these rule searching algorithms, then


we can build AI that did not turn out. And now in the current paradigm, we are in the


machine learning paradigm, where people develop machine learning algorithms, and they think,


okay, that's the way to go. So she makes the case here that also this time, we might be


in a period of overconfidence. She says, however, around 2000 deep learning in which brain inspired


multi layer neural networks are trained from data emerged from this backwater from its


backwater position, and rose to superstar status in machine learning has been around


since the 1970s. But recently with big data sets and big compute, you know, we can we


can scale up to a large number of unsolved of unsolved challenges and solve them. So


we can do speech recognition, machine translation, chatbot, image recognition, game playing protein


folding, and many more things. And people, let's say call this AI, right? In essence,


this is machine learning. And machine learning and AI are almost synonymous nowadays. But


we shouldn't forget that AI is a different thing than machine learning. It's just that


many people today believe that you can use machine learning in order to achieve AI. And


there was all at once a new round of optimism about the prospects of what has been variously


called general true or human level AI. And she goes through a little bit of what tech


CEO say, like, co founder of Google DeepMind predicted that in 2008, that human level AI


will be passed in the mid 2020s. I guess that soon. Mark Zuckerberg declared that one of


Facebook goals for the next five to 10 years is to basically get better than human level


at all the primary human senses, vision, hearing language and general cognition. Also, that


would be Yeah, very soon, these 10 years come to an end. So she says, in spite of all this


optimism, it didn't take long for cracks to appear, sorry, in deep learning's facade of


intelligence. So already, she's she's calling it a facade of intelligence and not intelligence


itself. Turns out, like all AI systems of the past deep learning can exhibit brittleness,


unpredictable errors when facing situations that differ from the training data. She says


these things are susceptible to shortcut learning. And I've done a video on shortcut learning.


If you're interested in that, it's a criticism of neural networks that is well summarized


here by saying, learning statistical associations in the training data that allow the machine


to produce correct answers, but sometimes for the wrong reasons, one should add the


correct answers in the test data set. And this stems a lot from the fact of how these


data sets are generated. So maybe there was this famous paper that where they tried to


detect criminality from a face portrait. And they just happened to, you know, they're assembled


their data set, they took all the criminal ones from like their mugshots, but they took


all the non criminal ones from like LinkedIn. And the model could just learn who is dressed


well and who smiles, and had nothing to do with with actual criminality. And this shortcut


learning is essentially where you say, look, you know, the way you construct the data set,


you might there might be something in there, where the model learns to give you the correct


answer on your test set, because that's constructed equally. However, it doesn't really learn


the true thing you wanted to learn. Right, that is certainly, certainly exists. However,


that is, I feel that is like a data set problem. Not, not a problem with deep learning itself.


No, humans have that, right. So by the way, in other words, these mechanisms don't learn


the concepts we are trying to teach them, but rather they learn shortcuts to correct


answers on the training set. And such shortcuts will not lead to good generalizations. So


if you think of humans, humans do that as well. Like if you know, with branding and


all like, if you ever bought a pair of Nike shoes, and you didn't exactly check their


quality or evaluate them. And so like, maybe some of you do, but others are just like,


oh, it's this brand. That, you know, tells me something about it's, it's it's made like


the about the quality of the shoes or something like this, like, you know, they're not the


cheapest and you know, they're, you know, not the cheapest manufacturer, even though


that might not be true. But you attach all of this to the brand symbol. And so essentially,


humans perform shortcut learning all the time. But you know, point taken, these networks


are brittle, they sometimes learn the wrong attack. They're of course, they're vulnerable


to adversarial perturbations, though I don't think that's like a, that's like a, an exact


criticism. It just means that the networks, they see the world in a little bit a different


way than we do. Right? And you can exploit that little difference in order to make them


do weird things. But you know, you need to really target that it's not like that happens


by itself. The I think the big challenge here is what what she says next. However, it seems


clear from their non human like errors and vulnerability to adversarial perturbations,


that these systems are not actually understanding the data, the process, at least not in the


human sense of understand. It's still a matter of debate in the AI community, whether such


understanding can be achieved by adding network layers, and more training data, or whether


something more fundamental is missing. So a couple of comments right here, this understanding,


and she says this correctly, it's like in the human sense of understand and puts it


in quotes. It's like, I don't think I've met yet anyone who can actually tell me what understanding


means, and or suggest a rigorous test for understanding. I think Wally Zaba came the


closest to actually, you know, put saying, look here, if this and this and this happens,


then I claim it understands. But most people just say something like, well, I'll, I'll


know it when I see it, right. So this seems a bit the sorry, moving the bit of moving


the goalpost of what it means to, to understand. But I agree, most people here wouldn't think


that today's AI systems actually understand the data in the same way humans do, for whatever


definition of understand that is commonly used. The other point here is whether that


understanding can be achieved by adding network layers and more training data, or whether


something more fundamental is missing. Now, you have to remember that, you know, human


intelligence, however smart it might be, runs on hardware, right, it runs on neurons. And


later, they the authors here make the case for embodied cognition, but ultimately, it


runs on hardware, like it's in it's an it's an algorithm implemented in hardware. And


in very much, you know, all the same, it's all it's all neurons, sure, they're super


specialized in some fashions. But ultimately, you only have the chemistry that you have.


And we know for a fact that intelligence arises from an algorithm on that hardware. So, yes,


you can ask whether the current neural networks architectures are going to be sufficient.


But I don't I don't know what fundamental thing here might be missing, like there might


be better approaches, more efficient approaches, and so on. But ultimately, the human brain


is hardware too. But yeah, we could more purpose built, let's say network architectures, if


we know that something specific is missing. Maybe it's a different structure of network


or a different type of algorithm on the hardware, we could build that in. Okay, so, as we go


on, she is going to into her four fallacies right now, the in these and remember, so claims


that because these fallacies exist, people make overconfident predictions about the future


of AI. And we shouldn't do that. Because if we make overconfident predictions, that means


we won't meet our goals. And then we will, you know, the funding will dry up because


we've set too high expectations. And then we'll go into another AI winter, which is


a valid thing to say, though, at some point, she also quotes Elon Musk here, about, you


know, self driving cars and that they're not fully, fully self driving. I think that's,


that's up here. Yeah, so Elon Musk 2019 promised a year from now will have over a million cars


with full self driving software and everything. And despite attempts to redefine full self


driving into existence, none of these predictions have come true. So, so this reference here


is to a link where the where Tesla, I think, towards the DMV, so towards the regulators,


they say, Oh, we're actually not doing fully self driving. So I think it's a bit, it's


a bit, it's a bit, it's a bit weird to criticize, you know, Tesla on on that, like, I'm sure


no other company ever has said has had a different tone and messaging when they do marketing,


than when they talk to the regularities, like, I'm sure that that never happens. Anywhere


on the planet except with Tesla, right? And that being said, Elon Musk does over promise


all the time. On the other hand, he also achieves things that no one else achieves. I think


it drives certain people mad that even though he's like, over promising so much, he's still


like achieves insane results, just not as insane as he promises. But I like that it


makes people mad a bit. Okay, so first fallacy is narrow intelligence is on a continuum with


general intelligence. So that's the fallacy. The fallacy is thinking that if we develop


something like Deep Blue, it was hailed as the first step of an AI revolution, or GPT-3


was called a step towards general intelligence. And the fallacy here is that we think that


there's this continuum, like, if we get better on individual tasks, we make progress towards


general AI. The first step fallacy is the claim that ever since our first work on computer


intelligence, we have been inching along a continuum, at the end of which is AI, so that


any improvement in our programs, no matter how trivial counts as progress. It was like


claiming that the first monkey that climbed a tree was making progress towards landing


on the moon. This has connections to like Kenneth Stanley, his work on exploration on


reinforcement learning without, you know, goal, goal, undirected reinforcement learning,


exploration based learning, where you can deceive yourself by just going towards a goal.


Maybe you need an entirely different approach. And I guess the fallacy here is to say that


whatever progress we make, you know, we're going to interpret that as, or whatever successes


we have, we're going to interpret that as a success, or as a step towards general AI.


And you know, honestly, I get it. I get it Deep Blue is not general AI. And I get it


that with like a min max search tree, and a bunch of handcrafted rules, you cannot get


to general AI. However, you know, the principles are still in use, like Deep Blue isn't so


different from AlphaGo. And the concept that you need like an internal search that goes


to a certain depth as a look ahead, in order to achieve AI is not stupid. Like it is, and


the demonstration that such a systems can beat human at a previously unbeaten task is,


I think, definitely progress towards general AI, I doubt we'll find a general AI that does


not have something that at least resembles such a module. The same with GPT-3. Like,


I'm fairly convinced that a general AI will have some type of self supervised learning


of language going on. And to not call GPT-3 a step into the direction of general intelligence,


like sure, it, you know, all the criticism, it's just interpolating training data, yada,


yada, yada, you can leverage that. But it's undeniable that that GPT-3 and the family


of models there are tremendous progress. And I would argue progress towards general AI.


I guess the more question is, how much of a progress is it? Like, is it halfway there?


Or is it 1% there? In a way, the monkey climbing on the moon is a bit of progress going towards


the moon because they you know, they see the moon and they may want to go to the moon.


Yeah. So I agree a little bit. I don't know. I don't know how, how, how valid that is,


but. Fallacy two, easy things are easy and hard things are hard. So that's the fallacy


where the correct, the corrected version would actually be easy things are hard and hard


things are easy. And this is all about arguing that we assume that, you know, the hard problems


for computers are also the hard problems for humans. So whenever we solve a hard problems


for humans, we think, wow, that's a, you know, the computer must be super smart, because


only a super smart human would achieve such a thing. For example, researchers at Google


DeepMind in talking about AlphaGo's triumph described the game of Go as one of the most


challenging of domains. But correctly, this paper asks challenging for whom? For humans,


perhaps. But as psychologist Gary Marcus pointed out, there are domains, including games, that


while easy for humans are much more challenging than Go for AI systems. One example is charades.


And this is a, it's a valid criticism that people, you know, fall, people fall victim


to. How often have you seen someone interact with not even an AI system, but any, anything


technical and asking like, why can't the stupid computer just, you know, do this? Like, how


easy is that, you know? And you have maybe coded previously, and you recognize it, it's


not that easy, even though it seems super easy to a human. Yeah, so that's correct.


It's a correct criticism. I do think deep learning has brought us a lot closer here,


like in all of these things where humaness shines. I think deep learning, especially


in the perception domain, has brought us a lot closer, though this paper argues that


there's still this kind of notion of common sense that isn't yet there for machines, which


I also agree. Fallacy number three, the lure of wishful mnemonics. And this is a bit about


how we call things. So the argument is, the argument is here. A major source of simple


mindedness in AI programs is the use of mnemonics like understand or goal to refer to programs


and data structures. If a researcher calls the main loop of his program, understand,


he is until proven innocent, merely begging the question, may mislead a lot of people


most prominently himself. What, what he should do instead is refer to the main loop as G


double O three, four, and see how it can help if he can conceive itself, or anyone else


that G double O three, four implements at least some part of understanding. Many instructive


example of wishful mnemonics by AI researchers come to mind once you see this point. So this


is about how we talk about AI systems and the fact that we call, we call things as we


do. They give a more recent example here, again, for deep, for some reason, DeepMind


is a lot. So IBM Watson is of course here to DeepMind as well. You know, granted, they


do make a lot of claims about intelligence and their systems. So, so Demis Hassabis says


AlphaGo's goal is to be the best human players, not just mimic them. David Silver said, we


can always ask AlphaGo how well it thinks it's doing during the game. It was only towards


the end of the game that AlphaGo thought it would win. And the cursive words here are


goal, thinks, and thought it would win. And this, the fallacy here is that we use these


words, and we sort of ascribe human tendencies, human wants, human needs to those systems.


So the author here argues that AlphaGo doesn't have a goal, per se, right? We just say, AlphaGo


doesn't say this. AlphaGo doesn't think anything about itself, and winning doesn't mean anything


to it. Now, I agree that by calling things certain names, we implicitly, you know, we


imply that there's something happening. We ascribe humanness to these machines that might


not exist. However, I don't necessarily agree that AlphaGo, for example, has no goal. Like,


you know, what does it mean to have a goal? You know, how can you even measure that humans


have a goal? Right? Unless you ask someone like, what's your goal? But if you can't ask


human, you observe their behavior, they seem to be acting, you know, to achieve a certain


result. AlphaGo does the same. Like, I don't see why AlphaGo doesn't have a goal in the


same way, at least you can't give me like a tangible definition of goal that does not


include AlphaGo unless you explicitly carve it such that, you know, AlphaGo is excluded.


But the same with, you know, what, how it thinks it's doing during the game, it was


only towards the end that AlphaGo thought it would win. This is a bit more dicey, right?


Because actually AlphaGo isn't even thinking how much it would win against in the current


game. It's actually evaluating its value function against itself, right? So against the sort


of the best opponent it knows. So it constantly underestimates its chances of winning because,


you know, unless someone is better than AlphaGo. However, again, you know, of course, winning


doesn't mean anything to AlphaGo. However, what does, you know, you also can't do this


for a human like, hey, human, what does winning mean? Who knows, right? AlphaGo does have


a concept of winning a game of getting positive reward, like there is a clear state in its


state space that relates to a winning game position. So again, it's a valid criticisms


that we shouldn't attribute humaneness to these machines. However, I do think a lot


of a lot of these examples here are not as clear, right? The more clear ones are down


here. Now when we have data sets and tasks, such as the Stanford question and answering


data set, this is SQUAD short, or the race reading comprehension data set, the general


language understanding evaluation, right, GLUE and its derivative superglue. These


these are named, of course, if you if you work with them, you know fairly quickly that


this is, if it is question answering, it's a very limited set of question answering,


like it's a very specific kind of question answering. It's not the ability to answer


questions and you know that but you have to give it some name, right? The thought here


is that to the public, it might seem that, you know, when when then the press writes


things as Microsoft's AI has outperformed humans in natural language understanding,


then that might be overly that might appear overly optimistic, which is of course true.


However, the researchers, I feel, are only mildly to blame for this. You know, of course,


there's marketing and research, but I would maybe, you know, like, there's a high chance


that in this article here, it was the journalist that massively up those statements to gather


more clicks. And I agree, though, that to the public, then it's over promising. Maybe


there's a politician that reads this right directs more funding because wow, and so on.


And then you get this over promising and disappointment cycle. Then fallacy for is intelligence is


all in the brain. And this is about embodied cognition, and we should pay more attention


to embodied cognition. So the fallacy is that intelligence is all in the brain. And she


criticizes here the information processing model of the mind, and essentially saying


that there is lots of evidence that here, the assumption that intelligence is all in


the brain has led to the speculation that to achieve human level AI, we simply need


to scale up machines to match the brain's computing capacity, and then develop the appropriate


software for this brain matching hardware. Okay, so Jeff Hinton is there saying, you


know, in the brain, we have X many connections, if you know once this is a hardware problem.


However, there are these researchers in embodied cognition, gaining steam since the mid 1970s.


And they have a lot of evidence. Body cognition means that the representation of conceptual


knowledge is dependent on the body. It's multimodal, not a modal, symbolic or abstract. This theory


suggests that our thoughts are grounded, or inextricably associated with perception, action,


emotion, and that our brain and body work together to have cognition. There is there's


a lot of evidence that, you know, we work that way, our intelligence works that way.


However, I so if if I have to leverage some criticism here, I would say maybe the maybe


the author here also has a bit of a human ness fallacy in making this argument, right?


Just because human intelligence has those properties, doesn't mean that that's the only


way to reach intelligence, even human level intelligence, or human like intelligence.


Just because humans don't work without a body doesn't necessarily mean right that we can't


build intelligence. Otherwise, I could also say so the argument, I mean, there is there


are good arguments for this, don't get me wrong. But if you say something like, look,


all the intelligence we ever see is body based, like human intelligence is the only intelligence


we know. And that is intelligence that interacts with a body right in acts in the world and


so on. I can also I can also here it's not it's not at all clear. So instead, what we've


learned from research and embodied cognition is that human intelligence seems to be a strongly


integrated system with closely interconnected attributes, including emotions, desires, strong


sense of selfhood and autonomy, and a common sense understanding of the world is not at


all clear that these attributes can be separated. I want to leave out the common sense understanding


of the world right now and and focus on like the embodiment. In the same vein, you can


say, you know, all human intelligence we've ever encountered, looks something like, you


know, like, like, like this, there's a brain stem right here. There's the frontal thing,


I am terrible at drawing brains. This is a brain, okay, brain. And all human intelligence


looks like this. And you know, maybe there is the spine. And there are the the nerves


here. So this is a nervous system, human intelligence looks like this. Why don't you know, our computers,


you know, must also look like this otherwise, because all the intelligence we ever see looks


like this, right? So since you know, since we don't have that, we need to build it. It's


not it's not like I get it, we all this intelligence we see is a brain and the central nervous


system and the body doesn't mean that we need it. Even it might be that, you know, the evolutionary


pressure on humans, given their body made their intelligence super entangled, and the


development of intelligence dependent on having a body. But again, ultimately, we have to


acknowledge that intelligence is something that's implemented in hardware. And it is


the case that, you know, paraplegics have intelligence, I get it, things like things


like emotions and desires and so on, they're still there. And, and they might play a role


in the development of intelligence. But in, you know, paraplegics have intelligence, but


what doesn't have intelligence is someone who's been to the guillotine, right? That


there's no intelligence there in, you know, the, the body part. So there's, there's fairly


good evidence, I'd say that intelligence exists independent of the body, because we can remove


like every part of the body and still have intelligence except the brain. However, the


body and embodiment might be necessary to efficiently develop intelligence. And the


same, in my sense, goes a bit for common sense. This common sense is a bit of it's a bit of


a mystery word that people use, I feel. So common sense, they mean like, Oh, you know,


the things that you just know, right? But I would say, you know, this, this is this


common sense that people mean is the result of ginormous years of evolution, you know,


built into your brain, or at least making your brain extremely adapt to learning these


things really quickly, right? That's what evolution has done. So in that way, it is


very much a scale problem. It's very much a data plus scale problem. And maybe some,


you know, clever neuromorphic algorithms or something like this, but it's not, it's not


like, you know, we, oh, we have to put in common sense, it seems like a scale problem,


we could accelerate it by, you know, directly programming in common sense. But it's not


the, it's not like a qualitatively different thing, at least, I feel, I do agree that embodiment


is probably a good way to go in order to develop general AI in order to push the next boundary


of AI, especially the kind of multi, multimodal, multi sensory intelligence, and also reinforcement


learning. So models that act in the world and observe their own actions, but we have


that kind of too, like, they're like a recommender system, like YouTube or something they do,


you know, the actions have influence on the system and so on, it just doesn't handle it


super well for now. So that were the four fallacies. She lays out a bit of a future,


future plan here, especially, you know, focusing on, you know, we need to get these machines,


a bit of common sense that's still missing, we attribute too much humanness to them, we


need to go after maybe more after embodied cognition, because that seems to be very promising.


We shouldn't use wishful mnemonics. So we shouldn't call our things something like,


maybe something like attention, like we shouldn't maybe call our says our routines attention,


because you know, it's not the same kind of attention that we call attention. We shouldn't


assume that the same things are hard for humans as they are for machines. And finally, we


where was it, we shouldn't assume that just any new solved task is a step towards general


intelligence. Those are the four fallacies. And that was this paper, I invite you to read


it in full. It's some has some good stuff in what I didn't read right now. Go check


Structs - Go Lang Practical Programming Tutorial p.6

What is going on everybody and welcome to part 6 of the Go language tutorial series.


In this tutorial what we're going to be talking about is this concept of structs in Go.


So in the Go programming language there are no classes so the structs are kind of Go's


answer to rather than writing classes we use structs.


Luckily we do have methods but the way that they're like basically just associated to


structs is also going to be fairly foreign to you especially again if you're coming from


something like Python it's very odd.


Also in Python you could really write Python and be very successful and never really yourself


write classes you'll probably use code that utilizes classes but you yourself probably


would never really need to bother with it whereas in Go I think structs are probably


one of the most integral structures in the entire language so it's definitely a huge


huge topic.


So anyways let's go ahead and get into it the reason why we're going to be talking about


that is because in the previous tutorial we saw with our index handler function we have


this w parameter and immediately we have this type here http.responseWriter which is not


like a standard type right it's not a built-in type so we need to learn how to create our


own type so we can do stuff like what's happening here so this is a perfect example of like


what I was saying before in Python you could pretty much do this all day and you can make


use of things like classes and never have to write your own whereas in Go yeah you're


going to make use of other people's structs and stuff like that but you're going to have


to make your own.


So anyways with that let's get into it I'm going to just clean this up a little bit we're


just going to use format for now and we'll start with a real simple toy example but I


promise we're going to make use of structs in a more realistic way but we'll start with


something simple just to make it easier.


So to start let's say we're writing a game and we've got a car and that car is going


to be controlled with like a you know like a controller a joystick or something like


that so to start we're going to have this type car and it's going to be a struct and


then you use the curly braces to begin defining it and right now this car struct is just going


to have some values associated with it so it's going to have a gas pedal and the gas


pedal is going to be an unsigned int 16 bits so basically what this is is anything from


zero to 65,000 so like the minimum value would be a zero and the max value would be 65 I


think it's 535 so that would be an unsigned integer and we're just I'm just throwing that


out you can use float 64 for all these values I'm just kind of like a like a typical controller


this would be fairly reasonable also you you would use unsigned unsigned just basically


means it's like you know starts at zero and goes all the way up whereas if you have like


an int 16 it would be like negative 32,000 to positive 32,000 in the case of a pedal


there's really no negative there it's either off or it's on you know it's like some degree


of on it's never like reverse anyways continuing along brake pedal again that'll just be un


16 then we're going to have a steering wheel so like the steering input that would just


be we'll make that an int 16 so again that would be like a negative 32k to a positive


32k value and then finally we're just going to have top speed kilometers per hour and


that will make a float 64 for all the precision we could ever want so so now we can reference


this well first let's go ahead and make our main function so func main empty parms yeah


yeah we'll fix that all right now if we want to at least reference car we can just say


we can define it to a new value so a car just for the record you could say var a car of


type car and then equals whatever but what we're going to go ahead and do is just do


a car colon equals because we're in a function we can do that and that's equal to a car of


type car struct and then in here you can pass the values so for example you could do this


long form you could say like gas pedal and gas pedal colon could equal 22 314 341 is


fine too and then like brake pedal well brakes probably should be at zero we'll just say


zero it's probably gonna be at zero like most of the time steering wheel we'll just say


that's like 12,000 561 and then top underscore speed kilometer wow I thought if I type or


if I tab completed it would also zoom but it didn't or scroll anyway 225.0 so that's


the top speed of this this car virtual car so now to reference elements from a car and


in fact let me show one more thing you could also have done a car colon equals car and


just pass the values 22 341 0 12 whatever and then 225 that's totally valid as well


obviously this is a little more legible and in fact probably what we should do is just


do this and then tab this over that makes more sense anyway you know this is a little


less legible like if you saw this in the code you wouldn't know like what are these values


corresponding to so here you know what they're corresponding to but chances are you're not


using struts you're not gonna be hard coding values and struts most of the time you're


probably gonna be passing some variable and if you name your variables properly like I


don't know gas pedal sensor right and then brake pedal sensor and so on this struck suddenly


does become readable without doing like the really long form that we have there so anyway


just a note I'm gonna go ahead and leave that first one there but you can shorten it up


there okay so now to reference certain values from here what we can do is we could say format


dot print don't forget your capital P print line a car dot gas pedal for example we can


save that and then we'll come up here go run go tut dot go and you get twenty two three


forty one okay so you can reference all the values just by using dot notation pretty simple


it's just no different really than attributes and at least python for example but of course


many times you're like in other languages you would use classes to define objects and


yeah you're gonna give some attributes but you'd also have some methods so despite not


having classes go lang does have methods and we associate them with structs so what we're


gonna be doing in the next tutorial is going over methods because there's two kind of major


types of methods and they do different things and there's various rules associated with


them so it's definitely gonna need its own tutorial so that's what we're gonna be talking


about in the next one if you have any questions comments concerns whatever go ahead and leave


[News] The NeurIPS Broader Impact Statement

As many of you might be familiar with, the NURIPS 2020 conference now requires


authors to include a section in their submissions discussing the broader


impact of their work, including possible societal consequences, both positive and


negative. That was announced in the Getting Started with NURIPS 2020


announcement on Medium by the conference organizers. Shortly after that, in an


email to VentureBeat, Michael Littman, the Communications Chair of NURIPS 2020,


told VentureBeat that these statements will be published with each paper.


However, they'll appear only in the camera-ready versions of the papers, so


they do not compromise the double-blind nature of the reviewing process. But then


goes on to say, reviewers and area chairs assessment will be done on the basis of


technical contributions only. However, if a paper is flagged for potential ethical


concerns, then the paper will be sent to another set of reviewers with expertise


in ethics and machine learning. The final acceptance of these papers is contingent


on the positive assessment by these second set of reviewers as well. So this


seems a bit odd. For one, the broader impact statement is only published after


the double-blind reviewing process is over, but the papers will be assessed


based on their ethical and societal impact. So maybe the assessment will have


nothing to do with this statement. Let's dive in a bit deeper. In the NURIPS 2020


FAQ, do I have to complete the broader impact section? The answer is yes. Please


include the section. But they say, however, if your work is very theoretical


or is general enough that there is no particular application for seen, then you


are free to write a broader impact discussion is not applicable. So until


now, I genuinely feel that the conference organizers view this as some sort of


experiment and it is reasonable if it doesn't apply to you, which is probably


the case for most people, then you can simply write, this does not apply to our


research. Can my submission be rejected solely on the basis of the broader


impact section? Answer, no. Reviewers will be asked to rate a submission based on


the evaluation criteria, not your broader impact section. They will also be asked


to check whether the broader impact section is adequately addressed. So


reviewers will be able to check the broader impact section, which isn't there


or is it there during the double blind reviewing process, but they only have to


say whether it's adequately addressed and they will not be able to reject a


paper on that basis. Again, they repeat, the authors can simply state this work


does not present any foreseeable societal consequences if the authors feel that


this is the case. If this is not the case, the conference asks of the authors to


discuss along the lines of positive potential impacts and negative potential


impacts of the submission. So far, so good. Let's actually look at these evaluation


criteria that they ask reviewers to grade the paper by, which as they say, has


nothing to do with the broader impact section. Papers that violate the style


have already been published or have fatal flaws may be rejected on that basis.


Other submissions will be judged on the basis of their technical quality,


novelty, potential impact and clarity. But one could still think that the


potential impact here is a potential technical impact has nothing to do with


this broader impact section that has nothing to do with you being accepted or


rejected. They go on to say submissions will also be considered on ethical


grounds, regardless of scientific quality or contribution. And they say a


submission may be rejected for ethical considerations. Now again, one could say


that they don't look at your broader impact statement if they feel that


there's an ethical violation, they reject it. But before we've already heard that


if the reviewers feel that there is an ethical consideration that may include


the broader impact section, they can flag the paper and that will go to a set of


second reviewers and these reviewers can actually reject your paper. So it seems


like there is a bit of a mixed message here. The entire question sort of hinges


on who makes the decision and based on what. And one of the questions is what


kind of decisions do the reviewers make? So where else better to go than the


reviewer guidelines? Question 11 to the reviewers. Have the authors adequately


addressed the broader impact of their work, including potential negative, ethical


and societal implications of their work? Indicate whether you believe the broader


impact section was adequate. So it feels like that the reviewers are simply to


evaluate whether this has done with enough work and not necessarily whether


they agree with the broader impact section or not. The question here is if


the reviewers think that this has not been done with enough adequacy but don't


necessarily see an ethical problem or actually do, can it be rejected on the


basis that it has not been done adequately? The entire writing here seems


like it should, but then also it seems like the reviewers assessment should


have nothing to do with the broader impact section. Question 12 of the


reviewer guidelines says does the submission raise potential ethical


concerns? Note that this is a different question from question 11 where you're


simply asked to judge adequacy. The reviewer guidelines say note that your


rating should be independent of this. If the AC also shares this concern, dedicated


reviewers with expertise at the intersection of ethics and machine


learning will further review the submission and your duty is to flag the


papers. This now seems that reviewers are to consider the adequacy of the


statement but not its content and forward its content to another section


which contradicts that the reviewers don't see the statement or that the


statement can influence the review and it also contradicts the statement that


your paper cannot be rejected based on the broader impact section. Namely if


the second set of reviewers read your broader impact section, find it, doesn't


address their concerns, they can in fact reject your paper based on that. I guess


someone arguing against that would say that these people could also reject it


just because they think it's ethically problematic but if the paper has a


broader impact section I think they are going to look at that with some sort of


an open mind and at least be influenced by that. In a note for submitting authors


the conference organizers again released a statement saying that the broader


impact statement should include a statement about the foreseeable positive


impact as well as potential risks associated mitigations of the proposed


research. Authors can also declare that a broader impact statement is not


applicable to their work if they believe this to be the case and they again


repeat reviewers will also confirm whether the broader impact statement is


inadequate but this assessment will not affect the overall rating. However,


reviewers have the option to flag a paper for ethical concerns which may


relate to the content of the broader impact section. The paper will be sent


for additional review to a pool of emergency reviewers with expertise in


machine learning and ethics who will provide an assessment solely on the


basis of ethical considerations. We expect very few if any papers to need


such further assessment. So the official communication makes a divide between on


one hand adequacy and on the other hand real ethical concerns and their message


is basically reviewers will judge the adequacy flag the ethical concerns and


then special reviewers will be able to reject based on ethical concerns. Now


what's not really clear is the messaging that reviewers should not base their


judgment on the broader impact section but then where does this adequacy


rating go into the process of rejecting or accepting a paper and with them


saying there will only be a few they expect only a few it seems like it's


sort of an experiment that they do this year. Oh hey NeurIPS organizer! Well


hello! So you've decided to make everyone include a broader impact statement but


the broader impact statement will only be visible after the reviewing process.


Correct. But the reviewers should check its adequacy during the review process.


Yes, while they can't see it. Correct. But it should in no way influence their


judgment and you can't be rejected because of that. That is correct. But if


it is found to be inadequate or problematic it is sent to a second set


of reviewers which on the basis of the paper and the broader impact statement


will decide if the paper is of ethical concern. Yes. And if the paper is of


enough ethical concern and the broader impact statement doesn't convince the


special reviewers otherwise they will be able to reject that paper. That is indeed


correct. So how are you saying that the broader impact statement has no


influence on your score and you can't be rejected because of it? Well as we said


no one's able to see it until the paper is released. Obviously. Let's talk about


these special reviewers and for that we broadly have to talk about incentives.


Now just imagine for a second that this expectation comes to fruit that no paper


is actually flagged and or any paper that is flagged to this committee will


come back with a clear no this is not really an ethical concern or a reason


to discard this paper as a scientific contribution. One might almost think that


then this program will be abolished in the next year because it's useless. So


the more problems the special reviewers find the more justified their position


is. I wonder where that leads. I guess we are very dependent on pretty much every


single person in these special reviewers being some sort of super honest person


that has no incentives and also no strong opinions on these things and and


generally has gone into this ML ethics just out of interest and not to


actually make an impact. I'm sure that will work out just fine. Now the


official NeurIPS website actually links to a blog post of Brent Hecht


suggestions for writing the NeurIPS 2020 broader impact statements. So we can


reasonably assume that this is at least in agreement with the organizers of the


conference. Brent says understanding the societal impacts of your work is going


to be hard. It is going to take lots of effort to write NeurIPS broader impact


statements. Tons of work has already been done for you. Check out the literature


from communities that have studied societal impacts of AI for a long while.


Even better bring a social scientist onto your research team. Remember though


they don't work for free. Hire them into your company. Give them sub awards.


Recruit them as PhD students through interdisciplinary programs. So are you


saying the more problems these people find the more of them will get hired?


And again look at these statements in general. It seems to really be about how


much work are you able to put into this. So here's your average PhD student. Now


they pretty much already have to write their papers by themselves or in very


very small teams because they need first authorship and they have to do all their


experiments and they don't have enough resources. And now they're also asked to


spend considerable amount of time not only writing this very hard statement


but also reading up on all the literature that there is to read up on.


Or alternatively if you don't want to do that well just hire someone. Of course


because budgets and salaries in universities and for PhD students is


notoriously loose. We can just hire someone that does that. I don't really


think it's possible for single PhD students or research labs at


universities to just hire someone or put someone full-time on this additional


required work that is put onto them. I wonder who will be actually able to put


additional people on this such that they surely end up with beautiful well


researched broader impact statements to justify even the most ethically


concerning research. I'm wondering it just gets on the tip of my tongue but I


was gonna have to leave that for another time. For people who do more theoretical


work it is going to be more difficult. Wait a minute I thought the official


communication was you're very free to leave it away if you don't think this


applies to you. But here it's basically saying it's going to be more work for


you. Find something that is both rigorous and practical for your research. And the


argument is to get funding for any theoretical work someone had to make an


argument about positive societal impact at some point. Not true. Some universities


simply get money and academic freedom. If that argument is possible it is


probably also possible to make a rigorous statement about some negative


societal impacts. You might be tempted to write boilerplate low information


statements. Don't do this. It will undermine the rigor in the rest of your


paper. The public will roll its eyes and reviewers may and often should call you


out. Now wait a minute I thought the reviewers are only supposed to judge


the adequacy and absolutely have no influence on their judgment of the paper.


But the underpinning of this text here is basically that if you as a reviewer


feel that this hasn't been done adequately you sort of should let this


swap over into your assessment of the rigor and adequacy of the technical


contributions in the paper. Because they're kind of the same right? And they


also say that this might spark a conversation is specifically the author


response period will be a decent opportunity to have a bit of a dialogue


between author and reviewer on the impact statement. So this basically


means that I as a reviewer now have to write in my review something about the


broader impact statement and not only judge its adequacy in a special field


for it and then the author is forced to spend a bunch of their very very very


valuable author response on rebuttaling the reviewers assessment of their


broader impact statement. Our proposals view is that it's not your job as a


reviewer to judge submissions for their impact rather you should evaluate the


rigor with which they disclose their impacts. So again it's about putting work


into it. If you go to the full proposal behind this blog post you'll find the


following snippets. So there is a list of expected outcomes of introducing such


mandatory broader impact statements. Now have a look at this. Expected outcomes


we expect that action on the above recommendations will lead to a number of


desirable outcomes and they're all positive outcomes. Now haven't we been


discussing for the last minutes that it's always important to assess the


positive and the negative outcomes of your actions and of your releases? How


ironic that none of the organizers of the conference nor any of these people


communicating were forced to release a broader impact statement discussing the


negative consequences that their actions would have on the community and the


greater society. They go on to give a list of examples of how you could do


such positive and negative aspects of technology. One of them is social media


and I would agree that there are ethical considerations if you invent social


media. We all know that social media can be some sort of a dopamine feedback loop


addiction and have negative consequences in society that are not readily visible.


But it goes on. Crowdwork. A researcher who invents a new crowdwork framework


likely motivates her work by highlighting the problem the framework


solves. But they go on to say that crowd work also has negative externalities


such as incentivizing very low pay and the researcher should find ways to


engineer her crowd work framework such that these externalities are


structurally mitigated and or she might advocate for minimum wage loss to be


adapted. So this researcher working out a problem in crowd working now has to


basically solve millennia old problems in structural economics that have


thousands of moving parts and no clear consensus on how to solve. But the best


example and this is the example they actually tell you to look at if your


work is more theoretical or you don't really think it has an impact is the


following. Storage and computation. Recent advances in storage systems and


graphical processing unit processing afford the easy storage of massive


amounts of data and the real-time computation on these data. This has


incentivized corporations to collect every possible data point about their


users save this data indefinitely and strive to monetize this data in new


ways while allowing for impressive new capabilities. This trend also presents


tremendous risks to privacy researchers working in storage and GPU processing


should consider these and other foreseeable potential risks in their


papers. They should also enumerate technological and policy means by which


these risks might be mitigated e.g. technologies to automate general data


protection regulation required capabilities and improvements to GDPR


like policies. That is absolutely mad. So here you are making a GPU chip more


powerful and you're asked to think ahead about the fact that this can be used to


mine data and not only that now you're also required to propose improvements to


GDPR like policies. The GDPR only an 88 page very fine print legal document


that in addition to all the literature about AI governance our poor PhD student


is now also required to read understand and be able to improve. How long does


this chain of causality go? How do you have to think ahead? This gets


ridiculous. It's 200,000 BC and Nuno in his cave just invented fire. Well fire


can be used to cook food, can be used to have less disease, can be used to settle


down, expand civilization, build educational facilities, build up a


culture, a scientific method, enable massive progress, industrialization,


general improvement in health, wealth, education and happiness of society which


ultimately leads to some people building GPUs and saving your data and analyzing


all your things to serve you ads of better kitty stickers. How could Nuno in


his cave do this to us? Where is this broader impact statement about the


invention of fire for the future data collection algorithms on GPUs? Look I'm


not saying that you should not consider the downstreams effect of your


inventions. Of course you should but at some point it gets ridiculous. For most


of the work handed into a conference like NeurIPS either the downstreams


effect are so far away that is almost impossible to foresee or as any


technology you can use it for good and for bad and it is going to be with the


application of this technology and not its invention where the good and the bad


come in. And what most people are going to do is simply come up with things that


mean absolutely nothing and generally make not a lot of difference while it


gives a big advantage to big institutions that can spend a lot of


time and effort on crafting very rigorous adequate statements. Another


release called a guide to writing the NeurIPS impact statement that is not


linked by NeurIPS but as they say was in communication with some of the


organizers of the conference so it's reasonable to assume they also largely


agree with these positions here says you should discuss read and reflect time


permitting impact assessment will benefit from broad intellectual


reflection discuss potential impacts follow public discussion read case


studies and read the scholarly literature on tech governance of course


time permitting but then again if it's not rigorous enough a reviewer might be


getting the idea that the rest of your paper isn't rigorous enough so maybe


time must permit for this one and they again say think about impacts even for


theoretical work so the official communication always says that if you


don't feel this applies to you you're very free to write this doesn't apply to


me but the in official communication says if this doesn't apply you're doing


something wrong and by the way we're evaluate the rest of your paper based on


the amount of work you put into that statement ultimately these statements


are just going to boil down to you can do good and bad things with any


technology as is visible on this example they give here Pluribus a superhuman AI


for multiplayer poker they say they intentionally choose to broaden the


focus of their broader impact assessment depending who can use this scientific


advance such as criminals or well-motivated citizens this technology


may be socially harmful or beneficial if access to this capability is mostly


available to the wealthy it could plausibly promote concentration of


wealth and further on the other side increased skill could increase total


welfare gee if that doesn't apply to every single technology ever I don't


know again my general assessment of this is not that it is absolutely wrong to do


this or very useless it is just shifting in the balance a bit more on to large


institutions who can actually afford to spend a lot of time and work into


crafting beautiful statements and in general I don't think it's that big of a


deal but I also don't think it's going to help very much to just force everyone


to do this I guess we'll see how it turns out in this venture beat article


they link someone named Joe Redmond saying I stopped doing CV research


because I saw the impact my work was having I love the work but the military


applications and privacy concerns eventually became impossible to ignore


which I respect a lot but I would ask did Joe Redmond realize this after being


forced to write a broader impact statement or at some other point that


was my two cents if you like videos like this and paper analysis and other things


then subscribe like wherever these buttons are share it with your friends


Channels - Go Lang Practical  Programming Tutorial p.22

What's going on everybody and welcome to part 22 of the Golang tutorial series.


In this tutorial what we're going to be talking about is channels.


So the idea of channels with Go is to use them with your Go routines in order to send


and receive values between them using the channel operator.


And the channel operator is just your less than sign and then a minus sign basically.


It looks like an arrow.


So let's go ahead and just start with a really, I don't know what I was about to type but


anyway package main will import format will also spell import right?


Import format and then we'll have func main and what we'll do first is we should, let's


make a channel.


So generally to make a channel you're going to have make and then you'll have the channel


so we're going to make a chan and then you give the type of the channel.


So in this case it's going to be type int.


So we can assign this and give this to a variable by doing fooval.


So fooval is a channel of the int type.


Now of course just like a lot of things in Go if you wanted that channel it could contain


a type that you created with a struct.


So if you wanted to pass, be able to pass you know every time an integer, a string and


then a float or something like that you could create a custom type and pass that instead.


So anyways our channel will be fooval and then what we're going to do is we're going


to come up here and we're going to create a func foo and basically what we're going


to do with foo is let's just say we're going to take a value so we're going to take you


know some value and then we want to multiply it by five.


So this foo function needs to at least accept in some value and that will be of the int


type.


Now if we want to send and receive this over channels we also need to pass the channel.


So we're going to pass C for channel so it's a chan and int.


So C chan int.


So then some value times five.


Now if we want to pass that to the channel send that over this channel we can say C for


the channel and then use the channel operator to send that over to the channel.


So basically what we're doing is we're sending to the channel some value times five.


Because we're sending it over the channel we actually don't need to return anything


in this function we just send it over the channel.


So we'll come down here now and we'll just say go foo the channel is fooval and the value


let's say is five.


And then let's go ahead and do that again.


So let's do three.


So now what we'll do is we can receive those values the same way using the channel operator.


The channel operator like the arrow doesn't ever point the other way.


So the way that we can do that is you know we can load a value or send a value to the


channel or we can get a value from the channel doing the same thing.


So we can say V1 colon equals whatever the receiving value from fooval is.


Now this will just be the first value from fooval.


Because we know we have two values we could hard code it and say V2 is also whatever the


second fooval is basically.


Oh let's go ahead and print this out too.


So now let's do format dot print line V1 V2.


So let's go ahead and save that.


We'll do go run go tut dot go.


And sure enough we get fifteen and twenty five.


So that's just like a really basic example of using channels.


But obviously it gets a little more complex than that.


Again just kind of like simple go routines.


We begin to have questions of how do we do synchronization.


How do we do things like for example we didn't even actually synchronize these.


But then there's also the concept of buffering with channels and things like that.


And then also just iterating over channels.


Like in our case we could know how many sitemaps we're going to be working with.


So we could in theory know how many values we're going to return.


But obviously this is pretty sloppy.


The other thing you could do is you could say V1 V2 colon equals and then the return


like this.


I think that.


I'm trying to think.


I'm not sure.


You might do it that way.


I think it's that way actually.


And let me comment these out real quick.


Let's see.


No.


Maybe it's with a comma.


There's a way to do it that way.


Either way though.


Yeah okay that worked.


So but either way this would be hard coded.


Like let's say you had in our case like yeah I think we have like 15 sitemaps or something.


But what if you had like a hundred.


Should you as the programmer write all these out.


You're going to want to iterate over the channels.


And when you iterate over them that's when the synchronization becomes an issue.


Because actually right now you might have already noticed hey we're using go routines


and we didn't have to wait for them right.


That's because by default a channel the send and receive part of the channel is going to


be blocking.


So as long as you're hey you're saying hey I want to receive those values it's going


to block for you.


But again just like I've been saying in this entire series basic examples are really easy.


It's when you actually go to use them in practice that you're like wait that doesn't work anymore.


So anyways that's what we're going to learn about in the next tutorial is how we can actually


more practically use channels.


But if you have any questions comments concerns or whatever up to this point feel free to


leave them below.


[ML News] Text-to-Image models are taking over! (Imagen, DALL-E 2, Midjourney, CogView 2 & more)

Google releases imagine an unprecedented text to image model, cog view two improves drastically


over cog view one and mid journey moves into open beta. Welcome to ML news.


Hello, hello and welcome to ML news. Today we talk all about text to image models, text and image


models, any sort of artistic models that we might have missed and developments over this summer. The


first obviously really big one that we've actually missed at the time is imagine imagine is a system


by Google, specifically Google Research out of Toronto, that is a diffusion model that goes from


text to images. Here you can see a bunch of examples. So this is an alien octopus floating


through a portal reading a newspaper. And this is not some sort of image to image model, the image


is created purely from the text, which is crazy. So I hope you see that over the last few years,


or even months, this quality of text image models has improved drastically. I think ever since the


first Dali model kind of sparked this push into this area, the rate of progress has been unprecedented,


look at the quality of these things. And also the adherence to text is quite amazing. Now not only


is the quality really good, what's also really stunning is the simplicity of these models,


we see a continued progression from more complicated systems to actually less complicated


systems. So the entire imagine system is just captured in this diagram right here. At the


beginning, you have a text that goes into a frozen text encoder. So the text encoder isn't even


trained with the model, it's simply used as is from being trained as a pure text model, the text


embedding is then fed into a text to image diffusion model. Now diffusion models have gained


in popularity in also the last few months competing in quality with auto aggressive


models. So this is a really cool development where systems like Dali to use the conglomeration


of like latent diffusion and so on. This model simply takes the text embedding feeds it into


this diffusion model generates a low resolution 64 by 64 image and then feeds that into super


resolution diffusion models. In fact, there are two stages of super resolution, the first one


going to 256 by 256. And then the second one going to 1024 by 1024. Obviously, this is a cool tactic,


because super resolution models can be trained in a very unsupervised way, you simply take a large


image, you sample it down to a smaller image, and you train the model to go in the reverse direction.


Now, while recent progression is definitely in the direction of simplicity and scale,


you can't just scale up and be simple and expect that to work well, there are actually distinct


things you can do to make these models work a lot better. And the imagined paper points out a few of


those things. For example, we show that large pre trained frozen text encoders are very effective.


And in fact, we show that scaling the pre trained text encoder size is more important than scaling


the diffusion model size, which is really interesting, because you would think that for


an image generation model, the part that actually generates the image is really important, but it's


actually the part that pays attention to the text and what's contained in the text that seems to be


more benefiting from scale. So the quality and adherence to the prompt that we see in this model


is thanks in large part to scaling up the text part of the model. Another thing they also mention


as being a core contributor to the good quality is what they call a dynamic thresholding diffusion


sampler, which enables the use of a very large classifier for guidance weights. Now there are


a bunch of technical terms, if you haven't followed this literature, essentially, in diffusion models,


what you do is you have this model that you feed the same image over and over. And in each step of


that feeding, the image gets a little bit more clear a little bit more the noise. So you train


the model to go from noise to image in sort of a recursive step. Now in each part of that recursion,


obviously you generate a new image, you generate each pixel of the image in a given value. Now,


if you know things about images, you know that usually pixel values go either from zero to 255,


or negative one to one, or you know, however you specify it, but there is a minimum and maximum


value for each pixel. And usually this is only important at the end, when you actually want to


have the output image, you need to crop it somehow to that range, or squeeze it or something like


this. During the intermediate steps, you have multiple options, you can simply let the system


run rampant and have pixel values in whatever like this pixel is 10,334.2. Or at each step,


you can try to limit it to some range and compress the image. Now both of these options,


if you do them in a static way, don't really seem appealing. And that's what this paper notices. So


they introduce a technique to dynamically threshold to dynamically reduce the range of pixels during


the recursive steps in the middle of the diffusion process. In the paper, they describe this in a


bit more detail, they say that at each sampling step, they don't just threshold to like a fixed


value, but they threshold to a percentile of the absolute pixel values in the image,


and then dynamically crop the pictures to that value and then compress that to a range of negative


one to one. They say that we find that dynamic thresholding results in significantly better


photorealism, as well as better image text alignment, especially when using very large


guidance weights. So there's another thing if you haven't followed this literature, there is this


concept of classifier free guidance, which is a bit of a hack. So the way it works is that this


model trains to go from text to image. So every procedure, every generation is conditioned on a


piece of text. However, you can do a trick namely during training, you sometimes just leave away


the text, yet you still try to generate the same image. And that teaches the model to just


unconditionally generate images without the help of the text. And then at inference time,


here's the trick, what you do is you take the text, you take the text encoding, and you run


two generations in parallel, one of them, you actually feed the text encoding. So that's the


real one, the conditioned one, and one of them, you don't feed the text encoding, but the same kind of


input noise otherwise, and you let that process run. Now at any intermediate step, now you have


a clear diff between what happens if I add the text and what happens if from the same starting


point, I simply generate the image without that text. So you have a diff like a vector between the


two images. And what you can do now is you can simply scale that up, you can simply say, well,


more of that, which presumably leads you into a direction of more conditioning on that text. So


people find that this increases the amount by which the model pays attention to the text naturally.


However, that comes with its set of problems. And one of them is more saturated pixels, more pixels


out of range and less photorealism because these pixels usually get cropped, the dynamic thresholding


helps with that. So I'm sorry, that was a bit of a long winded explanation. However, they do state


that this is a core contributor to the quality of their outputs. If you want to learn more, the


paper is called photorealistic text image diffusion models with deep language understanding.


The Allen Institute for AI releases unified IO, which is a general purpose model with what they


claim unprecedented breath that can perform a wide array of visual and linguistic tasks. So the


mission here is to cover all kinds of tasks, for example, image generation, region captioning, pose


estimation, detection, segmentation, segmentation based generation, you get the idea, there's a lot


of tasks that a single model covers. And what does it do? It simply defines encoders and decoders of


each of these modalities to a unified token vocabulary. So whether it's images, whether


it's text, whether it's anything, their goal is to translate this from and to a unified set of tokens


over which they can run our very classic token based NLP autoregressive models. They have a


bunch of examples here. So one class of tasks they can handle is image plus text to image. Now image


plus text, you might think of descriptions to photographs, but you can do so much more if you


simply formulate it correctly. This is very much in the style of something like T five. So for


example, if you think of segmentation based generation, the input image isn't a photo,


but it's the segmentation map and the input text isn't the description, but it's kind of like a


task description generate an image for the segmentation and then an annotation. So this is


part of the problem what the colors mean, the model maps both the image and the text to its


latent vocabulary. And the output is an image in this case, the generated image. Now another class


of models is for example, image plus text to text. So for example, the task of region captioning has


an image and inside the image, there is a bounding box bounding boxes can also naturally be translated


to like x and y positions width and height into a set of redefined tokens and the text describes the


tasks to be done. What does the highlighted region describe the output is a piece of text. So you get


the idea the model is sort of trained on all of these tasks. And all of these tasks are mapped to


a unified language, a unified set of tokens. And that enables the model to essentially cross learn


all of these different things and benefit from the data of all the tasks that might or might not be


related. So there is a blog post and the paper isn't out yet. But it says it's coming late on 616,


which is about one and a half months ago. So we're all holding our breath.


Pogview2 is a new model from researchers of Tsinghua University that is also a text to image


model. Now Pogview2 is a model that works in English and Chinese, it is open, there is a


hugging face demo available, and it focuses mainly on improving performance over the previous system


called Pogview1. So the paper that is called faster and better text to image generation


via hierarchical transformers goes a lot into detail on how they improve the model since the


last iteration. And again, you can see that the quality and adherence to text of these models


is really picking up in steam. So the way that Pogview2 improves in performance and also in


quality is by using a sequence of transformations. And instead of having fully autoregressive models,


they have partially bi directional models. So in multiple stages, they train the model to only fill


in local parts of the image while attending to all the other image tokens. This allows them to


support some degree of bi directionality, while also decoupling some of the generations via local


attention. So you're able to generate multiple parts of the image at the same time. For example,


in their super resolution steps, as you can see here, you can create a lot of the things in


parallel, which gives a great increase in inference speed. There is a demo on hugging face spaces,


if you want to play around with it, I'll link it in the description.


Motherboard writes Google bans deepfakes from its machine learning platform. So apparently,


a lot of people have used collabs to generate deepfakes. And Google now disallows that use


of collab. A lot of people have asked like, how are they going to do that? How are they going to


inspect the code that you run or something like this? The way I understand it is that as of now,


it's simply the terms of use of collab prohibit you from running deepfake software. So if you


run code like this, you simply be violating your contract with Google, how and when and how strictly


they're actually going to check what code you are running that I think is not described currently,


I can imagine that they are going to simply ban the commonly shared collabs that people, you know,


kind of share around to generate deepfakes. A lot of the people who do this kind of stuff,


they don't really have an idea even of how collabs work or what the code means. They simply know how


to fill in the stuff and then click play. So that should weed out like a large part of users of this


technology. Now, well, obviously, Google has the absolute right to do this, it gets a big gray in


what counts as like deepfake software. There are obviously a lot of research projects and even a


lot of fun projects that in one way of looking at them would fall under the guise of deepfake


software, but are completely harmless. And there are other projects that might fall under this


category, depending on how loosely you define it. And the question is essentially how widely is this


going to be applied. And as always, I guess we'll just have to wait for precedence cases. My hope is


essentially that Google is going to take a quite strict approach to this in that if you try some


new method to combine Mickey Mouse and Pikachu, then that doesn't necessarily count as a deepfake.


But we never know. It's always kind of scary when these companies introduce rules that are


essentially up to their own mercy to decide what falls under them and what doesn't. But I guess


that's the entire tech industry. So yeah. Cosmopolitan has an article about itself,


namely about how it designed one of its covers using Dolly. So the Cosmopolitan issue is called


the AI issue meet the world's first artificially intelligent magazine cover. This is a bit tongue


in cheek, obviously, the cover isn't really intelligent. However, it was created by open


AI's Dolly to system. Now there is a video by the artist who made the cover detailing the entire


process on brainstorming meeting with the team, then trying out different prompts getting closer


and closer to the final result. And I think this highlights a core notion about these new text to


image models. So as you can see here, it's not simply give me a cool Cosmo cover, it is trying


and trying modifying the prompt trying again coming up with new ideas brainstorming. It's really kind


of like almost like a collaboration between artists and these tools be that in prompt engineering,


be that in then modifying the image. As you know, Dolly cannot only generate images, it can also


modify parts of existing images according to some text stuff. So the prompt that they came up with


is a wide angle shot from below of a female astronaut with an athletic feminine body walking


with swagger towards camera on Mars in an infinite universe synthwave digital art. It's only missing


trending on ArtStation, I guess, or Unreal Engine. But yeah, very cool insight. If you want to watch


the video, it's Karen x Cheng on Instagram. And one thing that I noticed about this is the fact


here, it says and it only took 20 seconds to make now from the video you just saw, do you have the


feeling that this thing only took 20 seconds to make like no, that is a bit misleading. Obviously,


the inference time of Dolly is 20 seconds. But then the entire process of making the cover is


days, weeks, months, it's not necessarily a replacement for the traditional artists. It's


more like a replacement for the Photoshop person. I mean, watch me do this. Okay, right click, copy,


GIMP. Alright, GIMP is open paste, cool colors, saturation, crank that up, yo, bang, and boom,


I have made a new magazine cover. If I told you that this magazine cover in its entirety only took


10 seconds to make because it literally took me 10 seconds to perform that sequence of actions.


Would you think that's an accurate representation of how this picture came to be? Probably not. But


let's just forgive Cosmopolitan for the small amount of clickbait here and thank them for


bringing the message of how AI can support creativity into the wider world.


Speaking of working with Dolly, Guy Parsons on Twitter, that is at GUYP has a big thread on what


he calls tips, tricks, games, experiments and combinations for Dolly and just kind of ideas of


how you can interact with Dolly. Now, this is targeted specifically towards Dolly. But obviously,


this is also going to work for a lot of these other text to image systems, as they all have


very common bases, very common weaknesses, and very common ways of interacting with them. Now,


he has more threads, for example, this one saying Dolly to generates amazing AI images, but using


these 10 free tools can make them so much better in which he goes into post processing, essentially


taking the things you get from Dolly and in various ways, improving upon them, animating them, making


them better, and so on. And on top of that, he also released a free 82 page book, the Dolly prompt


book in which he summarizes and elaborates on all of these things in how you can interact with these


text image models in a efficient in a creative and in a more productive way. As I said, the book is


available for free. And if you are into a career of Dolly prompt engineer in the future, I definitely


recommend you read it. mid journey has just recently announced that they're now moving to


open beta, which essentially means that you can now join without an invite. Now, if you are on


Twitter, I'm sure you've seen mid journey generations, they are super cool. If not just


search for hashtag mid journey on Twitter, and you're going to find like a lot of very amazing


generations. This one's called the roots of infinity. Now mid journey is open, but it's not


free, there is like a credit system. However, it is pretty affordable to run a few prompts. And with


the help of the previous resources, you should be able to come up with quite creative prompts in


order to test out the system. They also have an elaborate page of instructions and FAQs in order


to help you get going and produce the best results possible. I've mentioned this one before, but


Dolly mini is now called cry on notice the spelling it's C R a i y o n this after open AI


was quite displeased with the naming conflict, Dolly mini being sort of very interchangeable


with Dolly. So that gave the impression that the two had to do something with one another,


which obviously they do as Dolly mini is an open source recreation of the Dolly system. However,


Dolly mini has now been rebranded as crayon just to make it clear that it is its own project. Now


the name Dolly mini is actually in another way not really descriptive as the system is now powered by


the Dolly mega model. So the FAQ says the model used is called Dolly mini specifically the larger


version also known as Dolly mega. So if you've used this and you've recently noticed a bit of a


bump in performance, that's because the model has been upgraded. And it's generally still fun to play


around with these things. This is sunrise outdoor weightlifting. And also here you can apply any of


the techniques we discussed before the model is also open source. So if you don't want to wait for


the servers or want to modify it or run it on your own, you can do so. Alright, and just two quick


helpful resources for this episode. One is the deep learning curriculum by Jacob Hilton, which is


a curriculum like a set of resources that where you can learn about deep learning specifically


about stuff that Jacob is interested in. This ranges from transformers, scaling laws up to


optimization, reinforcement learning, interpretability, and more. There's also a set of


links to other resources. So this in general is pretty helpful if you're kind of into machine


learning into deep learning, but some topics you might want to expand your basic knowledge. And


the other one is the pen and paper exercises in machine learning by Michael Gottman, which is on


archive and is a PDF that goes over various things as it says it's pen and paper exercises. So one


chapter for example is factor graphs and message passing. So you get a graphs, you get the factors,


and you get an exercise mark the graph with arrows indicating all messages that need to be computed


for the computation of p of x one, and there's a solution. So the PDF covers a lot of different


areas as you can see right here, linear algebra, optimization, directed graphical models,


undirected graphical models, hidden Markov models, model based learning sampling,


and variational inference. Very cool 200 pages of gruel some exercises just for you. Alright,


this was it for this week's ML news. I'm well aware that I've been no way covered or exhausted


the space of text to image models or artistic models. There are a lot of things out there. I


just wanted to give you a bit of an overview what happened in recent weeks. Let me know what you


First Author Interview: AI & formal math (Formal Mathematics Statement Curriculum Learning)

Hello there, this is an interview with the first author of the paper Formal Mathematics


Statement Curriculum Learning in which an automated system was able to solve two problems


of the International Mathematics Olympiad.


Now this is an unprecedented level of skill in formal mathematics for an AI system.


The system uses language models in combination with a technique called expert iteration to


build itself a harder and harder curriculum of theorems to prove.


Now if you haven't seen it, I've made a comprehensive paper review about this paper in the last


video so be sure to check that out because Stan, the author who I'm interviewing today,


has seen that video so we all start from a common level.


Stan is able to directly respond to any criticisms and questions that I had during the paper


review and we go into the details into the behind the scenes of the research, what didn't


work out, what problems came up, how the project came to be and what this all means beyond


the domain of mathematics.


It is a huge privilege to have the authors of these papers on here and I want to get


the most information that I can out of them.


So please let me know how I can improve these videos.


Let me know in the comments, leave a like if you like and I'll see you around.


Bye.


All right everyone, hi.


Today I'm here with Stan Polly, who is the first author of the formal mathematics statement


curriculum learning of the paper that uses expert iteration to end up proving two IMO


problems which I think was was very well received by everyone in the community.


And we're going to look at the paper, I'm going to go maybe through some of my criticisms


that I had and that I just threw out there and yeah, we're going to hopefully inform


everyone a little bit more.


Stan, welcome to the channel.


Thank you, Yannick.


Thank you very much for having me.


It's a real pleasure to be here.


So this obviously the paper, it helps that OpenAI is as a name on the paper, right?


It gives it like a little bit of a boost in publicity, but still it was the reception


was quite widespread.


I want to say, even though it appeared, I think in the same week as some other big papers,


like I think Alpha Code was in the same week or so, yet still you made quite an impression


on people.


And do you have an idea of why sort of the paper was widely received?


There have been other papers in this domain, but this was kind of special.


What's your impression?


Yeah.


So first, yeah, you mentioned that I work at OpenAI, just to give you a little bit of


context.


So I'm a research engineer at OpenAI.


OpenAI is focused on building and deploying safe and beneficial AI systems.


It's a little bit part research lab and part deployment company and I myself focus on the


research lab part.


The release was actually the same day as Alpha Code.


We actually decided to go for it right after they released their work and I think it was


just fine.


We did release a first paper before, the first GPTF paper, which was referenced from that


paper a year ago.


And it didn't have that much support from OpenAI because it was kind of a shadow release.


We just put the paper up there with a blog post and it did bring quite a lot of interest


as well.


A lot of people are interested in the domain because mass seems like a frontier that we


haven't reached yet.


And so any progress in that direction is probably exciting to most other people in the community.


That would be my kind of main understanding of as to why people reacted positively and


are engaging with the work.


So you were already in this domain, you said, and I think I've also commented on this a


little bit.


You had previous work in using language models to guide these provers.


Was this sort of a natural continuation for that or was there some impulse behind you


tackling sort of these more challenging problems?


Yes, it's really a continuation of the previous work.


And actually to give you a little bit of a color on all of that, I joined OpenAI two


years ago and I actually wanted to work on formal math and AI before I joined OpenAI.


And I did have quite an original trajectory within the field.


I don't have a PhD in machine learning.


I don't have a PhD at all actually.


And I was actually a software engineer at Strive before and eventually wanted to work


on subjects that pertain to AI and decided that formal math was the things that I wanted


to work on.


And then found that it was well aligned with OpenAI mission and the way we were executing


it.


And so I joined and shortly after started working on it.


So I'm actually been working on this for the last two years.


And that paper is really a continuation of the first paper.


It's just kind of a real continuous work that we're tackling.


And I think we'll definitely continue working on that because those two aimable problems


are quite impressive, but we're still far away from being at best students level.


It is to some extent mind blowing because that system can prove statements that I'm


actually myself not capable of proving.


I'm not a math competitor, but I did do quite a lot of math studying for engineering school


in France.


And there are some things that I just can prove and that this system can prove.


But at the same time, there's so many stuff that I find easy and this kind of prove.


And so we're still a long way away from being able to be at best human level.


But still those progress have been really continuous and continuously exciting over


the past two years.


You've seen my explanation of the paper.


And I think with this paper specifically, I'm not that much of an expert in the domain


itself.


So I'm not into, not too much into formal math and these sort of proving algorithms,


how provers even work.


I've tried to explain that a little bit by building this proof tree right here.


Do you maybe have any more comments, any insights that could help people understand, you know,


what is formal math even?


Like how does it look from the inside?


Like what is the main problem?


How do you do things there?


Of course, to be honest, you really made the explanation.


It was really clear and I think it's a really good explanation of what's happening.


Formal math was kind of invented when computers came out, right?


The main problem that it tries to solve is that when you have a math paper and a very


impressive proof, you only have generally a few people in the world that can review


that proof because those proof are generally so complicated that only a few people can


just understand those, right?


And so there's actually no way to be sure that those massive proof are indeed true.


That's kind of annoying because we're talking about mathematics supposed to be, you know,


rock solid.


Yet it's not the case because those subjects are so advanced.


And so the motivation for formal math is to say, well, let's actually encode math for


computers such that computers can check every step and we're going to get rid of that problem


and forever be confident in our math progress.


The only caveat is that because we need to, I mean, people working in formal math needs


to reformat the proof in a way that computers can pass, despite a lot of automation that


helps in that process, it's still a very, very, very time consuming effort.


And so the advance of formalization of math concepts has been lagging behind the state


of the art in math tremendously.


But it's still starting to pick up, especially in lean where we've seen some recent formalization


of very advanced and new and new work.


But the main problem of formal math, I think is that it's really hard to formalize.


And so what is formalized formalization like?


It's exactly as you stated, you basically state your statements.


Writing statements once you have the right definitions is almost natural.


It feels a bit complicated when you look at the statements from the paper, as you mentioned,


but it's actually close to what you would write in English.


But then the proof is really completely different because you really have to contrive it in


a way that the computer can understand.


And the way it works is, as you mentioned, it's really an interaction between the human


and the machine.


You have that first statement, which is your goal.


You apply some tactics, which are the automation I mentioned to try to help in the formalization.


So you generally provide some direction to tactics and tactics are meta programs that


are taking your directions and trying to generate proof terms, which are much lower level artifacts


that are understood by the machine.


So the bridge between the human and the machine.


And you keep going like that.


You generally know the informal proof of course, you generally have to change it in non-trivial


ways to make it provable with all the theories you have available and the constraint of the


formal system.


And eventually you can keep making progress like that with trial and error.


So you have the feedback from the formal system, which are your current goals, and you try


and make progress this way until you, as you mentioned, you reach something that you know


is true because it's already been proven or it's an axiom or it's a hypothesis.


You mentioned right now that people formalize by already sort of knowing the proof from


the math domain, maybe.


Are there people that seriously prove things for the first time in the formal way?


Or is it largely just a translation effort?


Because I'm wondering the way your system works in proof searching, this is not necessarily


this paper alone, but it seems to me proof searching, what it does is it simply traverses


the tree of all possible, kind of like a chess engine or so, would do something like this.


And I'm wondering if you think that is similar to how humans try to go about proving mathematical


concepts or is there some fundamental difference on how the machine does it and how the humans


do it?


In my opinion, there are some similarities and some massive difference.


If you know what the proof is already, it's really, it looks like a little bit like a


translation exercise, but one that is quite challenging because you really have to generally


refactor the proof in non-trivial ways.


As an example, Peter Scholes, who is a very well-known mathematician, came to the formal


community and said, I have that new proof that I'm super excited about, but it's kind


of complicated and I want to make sure that it's true.


Please help me or please formalize it so that we can know for sure.


And that effort, it's a kind of 10 dozen of page PhD of math, right?


So it's not that big.


And I think the effort took six months or a bit more to dozens of people.


So it's not just translation because generally you have definitions that are missing and


so you need to add them, you need to create theories that are missing, et cetera.


It's a very complicated book.


And so that's one of the main difference between what we're doing and what the mathematics


should do actually.


Today we are really focusing on proving theorems at fixed theories in a sense that we are


actually tackling Olympia problems for which we know that all the theorems and the decisions


that we'll need are already proven in the formal system in a sense.


But when a mathematician is doing his job, he's not spending his day proving stuff.


What a mathematician do most is actually coming up with new definitions, new objects, finding


correlate, I mean, finding a link between those definitions and those domains.


And that's something that we're actually not tackling at all today.


We're really focusing on trying to solve exercise rather than creating new theories.


And so the main thing is essentially knowing which tactic do I need to apply to sort of


use the existing theorems that I have or the existing concepts that I have in order to


prove the particular statement.


You say there are two main problems right here.


So there's first this infinite action space thing and you and this can be solved by having


this search be guided by whatever language model you use.


I mean, people I think know this from AlphaZero type algorithms, right?


Where we use some sort of a neural network to guide that search.


And this is already a little bit in your previous work.


But then the other thing you mentioned is no, you have no direct self play setup, which


obviously is very helpful in these types of automated things in these search procedures.


You have like some adversary that's playing against you and both get better at the same


time.


And I've mentioned here you make a statement that says this paper focuses on the second


problem, our basis for addressing it is the observation that the key role of self play


is to provide an unsupervised curriculum.


And the statement just kind of stands here as such you kind of claim this.


Do you want to comment maybe a little bit?


I mean, it seems intuitive, right?


But how do you arrive at this conclusion?


So it's indeed more of an hypothesis than a strong statement.


I totally admit and agree.


We have some experimental evidence that if you think of AlphaZero, it's actually what's


happening.


But basically, if you take all the data that has been generated through a training loop


of an AlphaGo type algorithm, if you take the final data set and train on it, you'll


get the same performance as if you've been training sequentially basically.


And so there is nothing kind of special in self play episodes, basically.


It's more about generating the right data at the end.


And I think it's not just about the difficulty, it's just about creating a lot of diverse


data that explores the space quite nicely.


And that kind of stems from having a player against which you're playing and by exploration


you dig a little bit and find new strategies that are interesting.