that the problem is somewhere here, right? The problem isn't the company's hiring wrongly.


Discriminating Systems - Gender, Race, and Power in AI

The problem isn't that the company's here, deselect, if the problem is somewhere here,


and because they want to make the argument that the company should hire in a different


way, they can't have that. So they argue against it. Now to argue against this would actually


be very easy. If this argument were wrong, like they claim the argument is is is not


good, the pipeline argument isn't good. If the pipeline argument were wrong, what you'd


have to do is you would have to say, you would have to say, hey, companies, look at that.


In in your company, you have an 8020 distribution, men to women, right? That's pretty unequal.


And you in university graduates, the pool you choose from is actually 5050. So obviously,


you're engaged in discriminatory hiring, because you know, the pool is 5050. There's no reason


why it why your hiring practices should cause this inequality. And therefore, we can clearly


show you do discriminatory hiring, you should stop it, you should definitely hire more women


and people of color, more of these more of the minorities, because your hiring practices


are the problem. But that's not the case. How do I know? Because if it were the case,


they would simply state this. Definitely in this report, if that were the case that you


could actually show with numbers that the pipeline argument is wrong, then they would


absolutely do this. Instead, they have to like, go back and they have to like, ramble


around it for several pages, which will mostly skip but mainly because this is the case,


it is the case that these companies hire from a pool of of unequally represented people.


And the only argument that you can make is that, well, if if you were to equalize this


here, then maybe here where the problem is that would fix like, so the argument is often


made if young girls choosing their majors have no no one to look up to, like no strong


women in in corporation CEO roles, they will think that it's not a climate for women, and


they will elect not to go into these fields, which is a valid argument. Like I'm completely


open to that to that argument. But it's the only argument you can make. And still then,


if you determine this as the cause, I would still not support racist and sexist hiring


practice, like, do something else, like make them clear that the environment can be changed


or change the environment, like change the if if it really is the case that it's kind


of a non anti woman environment, change that. If it's just the case that they perceive it


as such change the perception, but do not engage in discriminatory hiring practices,


because there's always someone losing out unfairly on these practices. And that's, that's


something I'm not willing to, to go into, like, that's something I'm not willing to


engage in. And I don't think people should engage be engaging in that. Actually, that's


why it's illegal. So let's, let's actually look at very few points. This is just why


the so they they claim they go kind of go over these pipeline studies. And they Yeah,


they say, term used in industry to reference the absence of diverse candidates in the hiring


pool of to justify the inability of large firms to achieve diversity due to scarcity.


Right. So that's they basically agree that of the on the definition that I stated here.


So they companies that are challenged on their lack of diversity frequently site pipeline


studies as proof of the persistent challenge of finding enough women and people of color


to hire. Yes, and, and the Yeah, but they say but the evidence suggests otherwise. For


example, in 2016, Facebook chief diversity officer wrote that it has become clear that


at the most fundamental level appropriate representation technology or any other industry


will depend upon more people having the opportunity to gain necessary skills through the public


education system. Well, yes, that's something I would agree. And that's something clearly


that addresses this region here. Then and where the actual problem is happening. So


I would say that's a very, very good statement from the Facebook's chief diversity officer.


They say but as the Center for investigative reporting study of tech company diversity


data found 91 large tech companies headquartered in Silicon Valley managed to hire higher percentages


of black, Latino and multiracial employees than Facebook that year. Well, just if other


just just because other companies employ racist and sexist hiring to improve their diversity


numbers doesn't mean that Facebook has to do this. Right? Does it? It like just because


other companies do this doesn't mean that it's it's a it's a good thing to do or that's


how you should go about it. Facebook simply says like, if we want to hire without being


racist or sexist, if we want to just hire the best people, then more of the best people


have to be in the pipeline, like more people have to gain access to educational opportunities.


So we can then hire them. Whereas these other companies probably make a big effort to say,


well, even if you are not as educated, even if you're not as qualified as this other person


will hire you because of your skin color. I don't think that's, that's an argument in


that, in the favor of what the report is claiming. Like, I don't think that that is evidence


that the pipeline argument is invalid. All right, so they go into core themes in pipeline


research, and they do some, they do some overview of the kind of pipeline research that often


so sometimes the pipeline research examines why, why, for example, why women don't choose


to go into computer science as much and sometimes they, they focus on what is their perception


of the field? What was it? What is their perceptions of the stereotypes of the field? What is their


perceptions of the kind of culture that in the field? Is it suited to them? What is their


perception of how qualified they are for the field? And is that true? Is that false and


so on. So this research examines a whole variety of things. And it's very interesting actually


to read through this research. I want to point out this here. Other studies suggest that


gender is correlated with a person's motivations for pursuing a career in the field. Women


and particularly women from low socioeconomic status, or minority backgrounds are more likely


to see computing as a versatile profession that provides an opportunity for secure employment,


higher pay and better social standing. Moreover, their interests go beyond technical aspects


of computing, focusing instead on the purpose and application of software. However, such


interests are often de-emphasized in computer science curricula, a prized technical skill


and its ability to industrial, its applicability to industrial settings above all else. So


I find this really interesting, because it's basically saying that women have different


interests than men and on average, right? That's basically saying that, which is almost


heresy. Like, to say this in this context, like people will come after you, if you suggest


something that isn't yet they're just stating it here. And remember this for later. This


is, this is really funny that they're like, there. Yeah, the interests could be different


for women than for men. And we might have to adjust our curriculum to be more suited


to these different interests. I mean, yeah, I'm sure that's a Yeah, as I said, you're


like, usually, this is forbidden to say. All right. So they, they go on. I say limitations


of pipeline research. Right? These are fairly like common, common limitations, let's say,


of studies in general social science studies, which I won't go into much. Again, this, they


state we have to examine, we don't, we don't only have to examine this, but the problem


this basically say the problem is actually the, the culture. And the problem is actually


the perpetrators. Where do I say? I don't remember where this is where this is stated.


But they again say, like, we have to examine who benefits from its present construction,


like who is underserved within the current tech ecology who benefits from its present


construction, how these dynamics might be untangled, and so on. So again, stating that


these kind of power relationships from for the different groups, which I don't agree,


is in large part what's happening. They say, it's worth considering the scope of these


studies. And the by and large, the recommendations they issue are limited, targeted at the administrators


of university computer science programs seeking to broaden the diversity of their student


body. Yes, that's exactly where we saw the problem appears to be right. So that the reason


they have a problem with these studies is that they actually focus on the point where


this discrepancy appears to happen. Because they want to claim that no, no, no, you should


focus on a different point, namely hiring in in these companies hiring and promotion.


They say, though important, so at least they think they acknowledge that that's an important


problem. This is a narrow frame, through which potential solutions to barriers to inclusion,


it does not address the companies that hire computer science students, the peers responsible


for promulgating stereotyped views, or engaging in hostile behavior or the broader social


conditions that may influence students success in computer science programs. Actually, the


research and even some of the examples they've included of this research addresses all of


this, like they, they, the research often addresses the kind of stereotypes and the


how the peers act and the how the companies act and also how the companies hire and how


the kind of how people have something to look forward to or nothing to look forward to and


how that influences the their decisions. Yeah, again, they say, the studies are frequently


cited by those within corporate environments to justify their own lack of diversity as


they situate the locus of change outside of the corporation itself. As such pipeline studies


are disproportionately emphasized as a part of the broader research agenda on diversity


and technology. Again, they state, companies use this to get out and of course, like companies,


of course, they're gonna use this to get out. I mean, I agree, at least with that, I agree


that companies are going to try to use this to get out of responsibility, certainly. All


right. So the last section here is the pipeline dreams after use of research. Again, this


is on on these pipeline studies, basically say they say the pipeline research hasn't


shown like hasn't borne fruit. It hasn't led to meaningful change in the field, even though


we've researched this. The reason they state the number of reasons they tend to place the


onus to solve issues of discrimination, Silicon Valley on those who are discriminated against


rather than the perpetrators. I find this word choice really interesting perpetrators,


right? Like, again, the group of white men is trying to put down everyone else. That's


the perspective that the article takes. And it's not even true, this research, a lot of


times it actually says the reason why, for example, women don't choose to go into computer


science is the male dominated culture within these corporations is the perception of, you


know, this of this not being a woman friendly environment is the people here of sexual harassment


and so on. So it's not even true. But moreover, I just wanted to point out the choice of word


here perpetrators. I don't I don't Yeah, I don't know how you get to this word. It really


shows kind of a worldview of the of the authors, in my opinion. All right. So they go on and


say, Okay, this pipeline studies haven't been beneficial and companies haven't done much


or hasn't been successful. They're going to worker led initiatives, which I'm going to


skip here, that's just a kind of a reporting of what happened at companies where the workers


themselves organized. And then the last section here is a pushback against diversity. So in


this section, they're kind of documenting and arguing against people who have basically


stated counter arguments to their recommendations, mainly. So their recommendations being, let's


change the hiring, let's change the promotion, and so on to to be based on race and gender.


And the pushback here, characterized in different ways. So we'll go through this just the last


section. I know it's a long video already. If you're still here, like the one person


who's still here, hi. Hope you're doing well. Good. Keep hydrated. So they say, it's a critical


time, we now see diversity itself being weaponized. So they say this growing awareness accompanied


by demands for inclusion and equity has led to some change. But there has also been resistance,


especially among those implicitly privileged by the status quo. So again, jumping straight


to attack on the person, like, I don't care if who makes an argument against me, I want


to go on the argument. And I'm going to go on the content of the argument. But these


people straight, first thing they stayed is that's, that's by, but that's just by the


people who are, you know, benefit. That's just by the white men, basically, straight


to the identity of the person. That's dishonesty, right there. Yeah. So those questioning, and


even rejecting the idea that racism, misogyny and harassment are problems within the AI


field, and the tech industry have appropriated the language of diversity to argue that efforts


to improve inclusion are in fact, exclusionary, and addressing the deeper structural challenges


posed by racism, sex and inequity is misguided. And yes, yes, definitely. Efforts to improve


inclusion can be exclusionary, like just because. So this is this is a thing just because you're


say fixing, let's say just because you're fixing a problem doesn't mean the method you're


using to fixing it is justified and is itself good. Right? methods to improve inclusion


can be exclusionary. And some that have been proposed are exclusionary. Definitely. It


depends on the method. It doesn't mean these people are against these efforts. It means


that the measures, for example, implementing racist hiring policy, I can definitely see


that this is going to lead to more equal representation within the workforce. But the tool itself


is really bad and exclusionary and discriminating. So, yeah, I would I would say that's it's


it's accurate that they can be exclusionary. I say for example, some AI researchers greeted


the announcement of black and AI workshop at nurbs leading machine learning conference


by questioning whether the event was necessary, arguing that it would be discriminatory. But


can't they can't they question whether the event was necessary? Like that would, I would


hear I would need a discussion. What is it for? Right? What Why is this event happening?


And what is it doing? And is it is it discriminatory? Like it could be like any event can be discriminatory.


Does it discriminate based on race or gender or anything? Is it? You know, does it do so


unjustly and all? So I don't I don't just don't see why question could still be wrong.


Like you could question and then you could be wrong. But you should be taken on your


argument. But the argument here is just already questioning this is is already on the wrong


side of the argument. And I don't agree with this, though. I don't agree with these people


that that question this workshop. Don't have a particular opinion on these things. But


I have the opinion that you have to take arguments at their argument value and not just and who


makes them or whether or not they're against a particular viewpoint. All right, so they


say such pushback often centers calls for cognitive diversity, or viewpoint diversity.


The idea that individual differences in the ways people think and understand the world


are distinctions that should be counted alongside or instead of other identity categories such


as race and gender. Well, yes, that's I mean, isn't isn't that is that a very reasonable


thing to say? Isn't it very reasonable to say that differences in the ways people think


and understand the world, there are distinctions that should be counted alongside other identity


categories such as race and gender. They say a dozen white men so long as they were not


raised in the same household and don't think identical thoughts could be considered diverse.


That's I don't know if this is a sarcastic statement or not, but clearly it's it's kind


of the the counterpoint they're trying to make here that but yes, I would I would totally


agree with this statement in a way a white man growing up in San Francisco, a white man


growing up in rural Idaho, a white man growing up in Florida, a white man growing up in Western


Europe, one in Russia, and one growing up on the road with its circus, his circus parents


in Mongolia would definitely be that plenty diverse, right? I mean, they criticize this


here but this is is actually how can you how can you not see this that yes, these are valid


differences and people are going to think differently independent of how they look,


people are going to have different thoughts and it's important to recognize other people


think differently and therefore you should, you know, include them if it's relevant. And


the counter argument to this is of course what the authors here saying basically is


that 12 a dozen people as long as they are don't look the same could be considered diverse


even if they all were raised in the same place and basically all live in San Francisco and


think the exact same thing. Yeah, that's I mean, it sounds to me it sounds as absurd


as the other way around it to me. So here's here's my here's my thoughts on this. I am


not going to pretend that I know what life is like as a woman, right? I'm absolutely


sure that for areas of life, it is it is definitely valuable to listen to the experience of a


woman or multiple women and aggregate of women. Because the life is just different as a woman.


Life is also different as a black person. I absolutely concede that there are things


that I might not be able to draw from my life experience. Because I am not of that skin


color that different problems that people face. And that's why it's important to have


an opinion of that at the table. But I'm also absolutely certain that I have no relation


to someone who grew up as a child pop star from the age of 12. And then had that life,


I have no relation to someone growing up under a communist regime. I have no relation to


someone growing up in in kind of a Buddhist religious tradition. I just don't and I don't


care how they look, they have different experiences, they have different bodies of knowledge to


draw on. And I don't think why we should make the difference along the exact lines of race


and gender. Yeah, but that's what they that's, of course, what they argue here. Those arguments


work by centering identity while flattening or ignoring power relationships. Here the


VP, the Facebook VP of engineering said that the ultimate goal is cognitive diversity and


cognitive diversity is correlated with identity diversity. That means it's not just about


getting women in tech, it's about broad voices, broad representation. Right. So the the this


is exactly what I would say, the reason why we want different what the reason why we want


a woman or a black person at the table is because they have a different knowledge is


because they have different thoughts because of their different life experience. They have


different thoughts that they can bring in. So actually, by including these what they


call bodies, it is about cognitive diversity, even in itself. But the authors here really


see this from a different angle. They really see this in terms of power relationships between


race and gender groups. And I yeah, the arguments of the authors don't make sense if you don't


view it through that lens. And that lens to me is just such a it's such a I don't know,


it's just sad look on the world. And also, I think it's a very, very inaccurate look


on the world. And it's, I think, a very dangerous look on the world. Yeah, again, they say instead


of looking at historical patterns of marginalization, calls for cognitive diversity argue that all


differences are equal. No, we're not like, no calls for cognitive diversity are don't


argue that all differences are equal, well aware that some people have it harder, well


aware that some differences are bigger, worse or better. That's absolutely well aware. All


they're saying is that race and gender shouldn't be the like, only things to consider and shouldn't


be in itself be considered diverse. Just because someone is of a certain skin color, it doesn't


mean anything, right? It doesn't actually tell you anything about that person. So why


not consider people as individuals and look at what was their life like until this point?


And what could they contribute to the discussion we're having rather than looking at the color


of their skin? I mean, if the color of their skin played a role in their life, then obviously


that would manifest in my suggestion as well. But to just look at people through this kind


of group lens is is so foreign to me. And yeah, I feel it's it's quite dangerous. Yeah,


so so again, and this this could argue that all differences are equal. I mean, the point


where you have to start misrepresenting what the counter argument is saying, that's really


how you know you're dealing with a with not a well intentioned person on the other side


of the of the discussion. This is really politics. Now, this isn't a well intended argumentation.


It's really someone to trying to achieve some goal, because they have to misrepresent the


other side. And this only gets worse from here. They say recently was exemplified in


the controversy over Google's appointment of Heritage Foundation CEO K calls James to


its advanced technology external advisory council. Google's reasoning for the appointment


of James was ostensibly to ensure diversity of thought by including a conservative viewpoint


on the council. Alright, so Google has a technology advisory board, a council sorry, of external


people. And they've included a conservative. And she is by all by all metrics, let's say,


a standard conservative. So this is not a far right neo Nazi type. I don't know. This


this is someone who has similar opinions than half the US country and in generally, in at


least in the Western world, generally half of the of the country's population tends to


be conservative. More or less, I mean, that there's differences. But yeah, so this this


is a, this is an opinion that a large portion of the population shares. So it would be I


don't know, it would be suitable to include at least someone of that opinion in an external


advisory council to to have that on board. You don't have to listen to her like it's


not like she's made king. It's simply that she will have the opportunity to input her


voice representative of kind of that large, very large percentage of people. They go on


to say, James is also a black woman, thus adding racial and gender diversity to the


panel. So even further, right, this is it's a conservative black woman. All right, but


the pushback following James's inclusion focused on her policy position, citing specifically


her vocal, anti LGBTQ, and anti immigrant views, and highlighted why cognitive diversity


is a particularly limited lens. And the pushback here was very much spearheaded by one of the


authors of this article. So I, this isn't just reporting, I will also also criticize


the the this pushback here. Since it's, you know, it's kind of argued for in this article,


it's not just reported, and also because the authors are the same. So, here they say they


have vocal anti LGBTQ and anti immigrant views. And I haven't actually gone specifically and


looked at what this person particularly has said. But given that she's a standard conservative


and has been in public office, I believe under George W. Bush, she can't like, I have trouble


believing that she has like, extremely hateful opinions like these people shouldn't exist


or like, something like that nature. Like, often people like conservative people have


have issues with forcing people to adopt certain pronouns for people or issues with which bathrooms


do people go in and, you know, generally are tougher on immigration, especially legal immigration,


and so on. I mean, these are these are views that people hold. And a large part of people


and these are discussions to be had. So including this, this person would be a very sensible


move. But they say in a letter opposing the appointment, a group of Google workers calling


themselves Googlers against transphobia and hate, transphobia and hate, responded to the


idea that diversity of thought justified James's addition to the council. This is a weaponization


of the language of diversity by appointing James to the ATAC. Google elevates and endorses


her view implying that hers is a valid perspective worthy of inclusions in its decision making.


This is unacceptable. Here it says, again, the the author was one of the organizers of


that. And that's what they're saying here. This the views. If you don't have our views,


it's these are unacceptable views, right? It's a valid perspective worthy of inclusion.


It's what they're saying basically is, you don't even talk to these to this person like


talking to this person, considering their opinion, you can still evaluate the opinion,


but even considering their opinion is already wrong. And that given that the person is a


black woman. So basically, they're called the authors idea of diversity is people that


look different that are from race and gender groups that have don't have much power or


perceived what they call power right now. As long as they all think exactly as we think,


right, then that's fine. As long as they, they share our thoughts, as long as they don't


have dissenting opinions. We want the we want the different looking people, but don't dare


talk to anyone of a different opinion. Yeah, this I don't I don't see how I mean, these,


these authors, in my opinion, they really live in a bubble, they really live in the


in a tiny Silicon Valley or Silicon Valley influenced spaces. Because this is this is


half the people, they basically saying half the people in their greater community in their


country aren't even worthy listening to their their opinions aren't even worthy of inclusion


in of consideration. So yeah, well, well done. Might as well discredit them at once. I'm


sure I'm sure I'm sure that's gonna fly well with these people. All right. Yeah, my might


start calling them deplorables and see what they do. Maybe they'll return the favor and


elect a moron. Just stick it in your face. I mean, that's what happened. So the idea


of cognitive diversity is mobilized by some support in support that the AI field and the


tech industry are already diverse. Going as far as to support claims that not including


identities like white and male constitutes discrimination. Yes, it can like if if you


include every single identity except white and male, that constitutes discrimination.


That's I mean, yes, even if they're in the majority is still constitutes discrimination


like no one can help being born white and male no one white and male chose to be born


like that. Don't don't mostly don't choose the melanin content of your skin, you can


modulate it a bit by going to the sun, which computer science people statistically don't


do very often. So there's not much leeway there. So yeah, to to not include identities


like that if you include every other one can constitute discrimination. True. A July 2017


memo written by James Damore, a software engineer at Google is illustrative of such pushback,


titled Google's ideological echo chamber and published in an internal mailing list memo


critiqued the company's diversity policies arguing that biological differences between


men and women rather than bias and discrimination help explain gender disparities at the company.


I feel the you can leave out the rather than here. I think the memo simply stated that


biological differences can help explain the gender disparities. The most objective writing


the memo was to make the case that policies designed to achieve equal representation are


unfair, divisive and bad for business. Well, some are yes, especially the recommendations


that you've given at the beginning. Number seven is unfair, divisive, and I would also


argue bad for business. Yes. So supporters for the most point of view at times even drew


on rhetoric of the pipeline to make the case that diversity initiatives are in fact discriminatory.


They argue incorrectly, that if there aren't qualified candidates in the pipeline, then


hiring those who are unqualified of the basis of identity discriminating discriminates against


those who are qualified. No, I would, I would say hiring anyone on the basis of identity


discriminates. I mean, inherently. So against I think that's the I think that's the larger


argument that these people are making, which is not incorrect is very correct. Yeah, so


in an update to the memo, the more himself asserted that he values diversity and inclusion.


But his primary concern was cognitive diversity. He says diversity inclusion is not denying


that sexism exists doesn't endorse using stereotypes. And in specific, I've read the memo, and it


directly says, these are these are population level kind of statistics, and there is more


overlap than difference. And you absolutely can't say anything about an individual by


looking at these statistics. That's almost a quote from this memo. So he was very much


concerned with considering people as individuals. But also, if you like, he was basically making


the same argument as earlier, I told you to remember, hey, look, the this one's this described


this one study that found that women's interests might be different, and we might shape the


curriculum. That's basically what the more said, he said, women's interests might be


different, we'd have to maybe shape the way we do work, like, change the way we do software


engineering to attract more of them. That's what was one of his points. So it's exactly


the same thing. But of course, he's a misogynist, because he suggested this, this could be due


partly because of biological differences. And the way he was dragged through the mud


is just crazy. And this they shoot here, very much against this kind of biological, what


they call biological determinism. We'll see this very briefly, they say diversity becomes


an empty signifier, stripped of the histories and experiences of systemic discrimination,


repurposed around ideology rather than bodies. Yeah, I'd say diversity has nothing inherently


to do with bodies. Like as as such, I think that only that's only the case if you are


already convinced of this. Let's say. Yeah, within hours of the memos publication, harassment


targeting minority advocates who pushed back against the claims in the memo began with


a particular focus on queer and trans workers. Well, that's bad. But also, I think the pushback


against people who voiced support is also was also pretty bad, because one of them was


fired, as you already stated. Google's vice president of diversity even locked down her


Twitter account shortly after the most firing responding to the barrage of threats describing


her as a police Nazi. Well, yeah, if you fire something, I mean, undoubtedly, Google fired


this guy because they thought it was less of a PR disaster. If they also fired him now,


then I mean, this wasn't a probably wasn't an ideological decision, much, much more a


PR decision. But yeah, if you fire someone after stating, like after stating something


like this, it very much looks like you're firing them because you don't like their ideas,


and you don't like what they're saying, which people generally not in favor of censoring


freedom of speech. But yeah, that's being said, harassment is bad. Don't harass people.


Also, that being said, criticism isn't always harassment. And don't conflate the two. The


Moore's memory memo also stated that the distribution of preference abilities of men and women differ


in part due to biological causes, and that these differences may explain why we don't


see equal representation of women in tech and leadership. This certain hinges on a flawed


assumption that identities like gender and race are essential and fixed biological attributes,


and that inequalities are at least in part the product of such irreducible differences.


Well, I mean, if they're not fixed biological attributes, certainly gender and race have


a point nine, nine correlation with biology. And since your biology is first and it's determined


when you're conceived, that was that demonstrates a causal direction, right? So even if they're


not exactly fixed, they are, like, overwhelmingly fixed. And to to suggest that is a flawed


assumption that these inequalities are at least part product of such differences. What


you'd have to do, they simply state, it's a flawed assumption. What do you have to do


in order to show this is a flawed assumption, you have to show that gender and race as far


as they're biologically determined, have no influence whatsoever on these differences.


That's what you have to show, right? That's the counterclaim, because the claim is, they


have at least in part something to do with it. And that's also, I believe, what the more


stated and what the predominant opinion like, it's very like all the research points to,


for example, there is a large difference in interest between genders, as far as, for example,


career selection goes, and so on. Now, we can we can talk about why that is, but there's


also a large consensus, I believe that this as at least partly determined to however degree,


but it is at least partly determined by biology. In order to show that this is flawed, you


need to show that it does not have it can't have any influence, right, you have to basically


prove them the the impossibility of this having an influence, which no one has done so far,


much to the contrary. So simply state this is a flawed assumption, kind of shows to me


that they've already they are there, they're in a bubble, and they're expecting to speak


to people in the same bubble. Yeah, so they, they go on and kind of discredit this as called


a biological determinism. Which, I don't think that's a, I don't think that's a correct use


of the term biological determinism. But you can judge for yourself all I think these people


are saying that biology might have some influence. And we can adjust for that. It's not even


right, it's not even Yeah, this this comes up here. So conclusion, conclusion, finally,


I think it's been two hours, sorry, conclusion. Throughout this report, we've outlined the


scope and scale of the problem tracing how the diversity crisis in the industry and the


problems of bias in AI systems are interrelated aspect of the same issue. No. In the past,


these topics are commonly examined in isolation, but increasing evidence shows that they are


closely intertwined. No, they're, you've shown that they're parallel, you have absolutely


not shown that they're interrelated aspects of the same issue. And you have not shown


that one, any one of these causally influences the other that there is any feedback loop,


you have not shown that fixing one leads to fixing the other. I mean, you could also,


like take a company that extremely is focused on or like for some reason has a different


workforce, and then show how their products with the same data sets as the previous companies


don't end up being being biased. Probably not so easy. But again, there's not none of


that is in the report. There are many things you could actually do to show what you wanted


to show. But it's just not the case in this article. Our analysis surface to prominent


responses to the diversity crisis. On one hand, a worker driven movement, which we've


skipped. On the other hand, we observe a small but vocal counter movement that actively resists


diversity in the industry. I mean, what again, what dishonesty actively resists diversity?


I mean, this, the thought that these people stray around like, No, I don't like that.


I don't like the other looking people. It's just so absurd. All they're saying is that


either we don't understand the problem in the correct way, or our tools aren't appropriate


to solve the problem. I think everyone has the same goal of the workplace and the AI


systems being as fair and as non discriminatory as possible. To I don't misrepresentation


of the other side is something that really bugs me. And it's something that these authors


do a lot. So yeah, I lose my polite side maybe. And uses arguments from biological determinism


to assert that women are inherently less suited to computer science and AI. What a load of


crap. Sorry, but uses to assert that women are inherently less suited to computer science.


No one, okay, not no one, but no one that I know. Asserts that absolutely no one that


makes these argument, okay, sorry, not no one, you can always find a sexist douchebag


that makes that argument. But this, this is not a serious argument made. And this is not


the, this this counter movement, most people in the argument that most people in this counter


movement make not at all. And to represent them as such is just so dishonest that yet


this, this this basically this is the it's nice that it's in the conclusion because it


finally like at the end, it completely destroys the credibility of me taking seriously these


authors. I thought they had so that the parts we skipped over, I mostly would say I'm mostly


okay with the mostly show parallels between the hub that AI systems are biased. And they


also show that there is unequal representation. They also show examples of discrimination,


harassment, and so on. Problems in AI companies and universities that all you can read the


report for this. That's it's pretty interesting to read. But the points I've addressed, I'm


not happy with. Yeah, so that was it for now. Sorry, this was took so long, but I felt a


Meta-Learning through Hebbian Plasticity in Random Networks (Paper Explained)

Hi there, take a look at the following problem on the left right here. So you have this quadruped,


and the goal is to have it walk forward or in any direction as far as possible. Now, usually this


is the domain of sort of reinforcement learning. So you have inputs, which is the sensors of the


joints of the quadruped, and you have outputs, which is how much force you want to put on each


of the legs. And you have to somehow learn a policy to make it walk forward. Reinforcement


learning does that by sort of trial and error using an environment to learn the policy directly.


However, this paper does something different. What it does is it learns a policy that is adaptive


during training, which basically means that at the beginning of each episode, the policy in it is


initialized randomly. And by policy here, we mean a policy network, policy neural network, which you


can see at the bottom. So that's initialized randomly. And then during the episode, depending


on the input, this network is changed and adapted in order to achieve high performance. So even at


test time, the network is started randomly, and then adapted during the episode. So this paper


deals with this problem and tries to implement this sort of more biologically plausible way of


learning a policy adapting to the environment, and achieve ultimately good performance in this task.


And it has some nice property, namely that it can deal with these things, as you can see here,


front right leg damage, front left leg damage, but we'll get to that later. But just so you know


what's coming. So the paper is called meta learning through Hebbian plasticity in random


networks by Elias Naharo and Sebastian Rizzi. So we'll go through the paper, what it does, what


evolutionary methods are really briefly, which they use, what Hebbian plasticity is, and the


difference to classic reinforcement learning. And then we'll look at the experiments. And that's


going to be it. If you like content like this, as always, don't hesitate to subscribe and share it


out. And tell me what you think in the comments. I still read all the comments. So I am very


interested in what you think about works like this and about the video itself. Okay, so they say


lifelong learning and adaptability are two defining aspects of biological agents.


Modern reinforcement learning approaches have shown significant progress in solving complex


tasks. However, once training is concluded, the found solutions are typically static and incapable


of adapting to new information or perturbations. So they contrast the two things here. Reinforcement


learning, as you know, is very powerful in these domains. But its goal is to learn a policy and


then that policy is fixed. And it's specific to that particular problem. However, biological agents,


you know, humans, animals, and so on, they are able to adapt usually very, very quickly, they


give some sort of examples right here, like, if a if an animal is born, it almost immediately knows


how to walk. So even if it has some sort of injury, even if it has some sort of disability,


usually the animal can walk pretty much instantly. And that means it sort of adapts to the body that


it is in sort of reconfigures itself on the fly. And that's what we're going to explore here. So


this isn't going to outcompete our L anytime soon, it's just a different way and a biologically more


plausible way in order to do that. Again, they say, we still don't know completely how biological


brains learn and adapt so efficiently from experience. It is believed that synaptic


plasticity plays a prominent role in this process. And that's why they are using these Hebbian


learning rules in order to configure the network. So let's contrast the two things for a second.


In reinforcement learning, what you have is a policy network. Now the policy network is a neural


network that maps sensory inputs to actions, okay, so you have the observation goes in and outcomes


and action. This is your policy network. Now, during training in reinforcement learning, what


you do is you have some sort of environment, okay, this is the environment, and you play this back


and forth game with the environment. And you try to improve this policy network right here, as best


as you can in order to achieve a high reward. Then during testing, so this is train, then during


testing, you freeze, you freeze this network right here. So you freeze the network. And then you


and then you simply play that game and you see how well it does. Okay, so this gives you some


sort of reward. And that's going to be your testing reward. And you know, that can be


generalization, it can be two different environments and so on. But the crucial part is


that you in train, you learn, and then you freeze during test. In this, in this particular paper


right here, they do something different. So let's call that the Hebbian plasticity world.


In the Hebbian plasticity world, again, you have your environment, and you play this game. But


you play the game in episodes, and at the beginning of each episode, you initialize this


using some sort of distribution here, a normal distribution, you initialize the network,


and then you learn, you adapt. During the episode, you adapt the network to have good performance.


Okay, so this thing right here, these are the Hebbian rules. So you update the network during


the episode, and then at the end of the episode, you go back, you initialize the network again,


you start a new episode, and you again, adapt that randomly initialized network. So what's


actually learned here isn't the weight of the network, what's learned during training is these


rules that transform any randomly initialized network into a high performing network. Now,


of course, you might just object and say, Hey, wait a minute, I can just basically hard code


the, you know, the optimal weights here into these Hebbian rules. Like my rules can simply,


you know, not care about the input and simply output whatever good weights there are. And


ultimately, that would lead back to RL. But as you will be able to see in the experiments,


they also have some videos provided that I invite you to watch, you can really see that the network


reconfigures itself. First of all, at the beginning, it reconfigures itself to a good state,


but then also, as the episode is progressing, it continuously reconfigures itself depending on the


input. So this is the real power of these Hebbian rules in that during the episode, the network can


continuously reconfigure itself in order to achieve higher rewards. So it's not just that


I can go from the random initialization to a good performing policy, I can adapt that policy


depending on what the input is. So at test time in this Hebbian world, what we're going to do is


again, we are going to freeze the learning rules. So you have to kind of rethink we're going to


freeze the Hebbian rules, but still, we're going to randomly initialize our policy in each episode.


And then we're going to change that during the episode, okay, and then that's ultimately going


to give us our reward. So that the thing that's learned is just something different. Here, you


learn the weights directly in the RL setting. And then the Hebbian plasticity setting, you learn the


rules to update the weights dynamically depending on the input. This is a form of meta learning,


right? It's not exactly but it is a form of meta learning. So let's see what those Hebbian rules


are. And you can as again, you can see this right here during training. So this is one episode. And


it always starts with these random networks at the beginning. And then you can see as you progress,


there is structure emerging. And again, I linked to the videos. And you can see that during the


episode, even this is changing. And this is especially visible on their other example that


they have here, like this, this car example. So in this car example, during the video, you'll see that


now there's a curve like this. And then as imagine you're a driver, like there's a kind of a left


curve coming and you adjust your mental state, let's say, to say, okay, I don't know what's


around the curve, I need to be ready to break and so on. And then there is a straight piece coming


and you'll be like, well, I see everything, you know, I can focus on different things that you


can reconfigure your state in order to adapt to the observation. And that's exactly what you'll


see in that video is that the weights are continuously updating not so much in these


quarter pets to which we'll get later. So these Hebbian rules, what do they look like? These are


biologically inspired rules. And they say the following. So this here is the delta w i j. And


our perspective of policy networks is going to be that this is a neural network, as we said,


and we'll just pick out one layer right here. And there is going to be weights right here,


you know, weights from all to all these are going to be fully connected networks.


And like this, and there's going to be neuron I somewhere here and neuron j somewhere here. Okay,


so neuron I and neuron j are going to have a connection together, this thing right here. And


there's going this, the question is going to be how do we update that weight from one time step


to the next remembering the weights here are changed in each time step, each time step during


the episode, we update the weights. So how are they going to be updated? Let's contrast this


first to classic reinforcement learning. So in classic reinforcement learning, we would keep


these weights the same during the entire episode, and then at the end of the episode, right, we keep


those the same. And at the end of the episode, we'll get a reward. And then we'll go back,


we'll look back and say, how do we need to change the weights such that in the next episode, the


reward will be higher. And in again, in classic reinforcement learning, for example, in policy


gradient methods, you will actually calculate a gradient with respect to these weights right here.


Actually, let's let's go into that later when we contrast evolutionary methods. So the important


part right here is that we change the weights in each time step. So how do we change the weights?


Of course, we don't have access to the reward, right, in order to change the weights, the reward


is going to come into play when we change the rules to change the weights. But during the episode,


we don't have the reward. At least we assume we only get kind of the reward at the end. So we need


a different method. And the method is going to be the following right here. The important things


in this formula are going to be so how do we change the weights that's dependent on two


quantities that appear during each time step, o i and o j. And these are going to be the outputs


of neuron i and neuron j. So how do we change the connection that's going to be dependent on


the output of neuron i, which is here called the pre synaptic output, and the output of neuron j,


which is going to be the post synaptic output. The rule, the kind of mantra here is the fire


together wire together means that if two neurons are active at the same time regularly, then they


probably should be connected together because they already correlate. And you can see right here that


there is a term in this formula that is o i times o j. So this here is the correlation between or


the covariance or just the product, if we're exact between these two neurons. And if they are both


active regularly, then this quantity is going to be high. And if they're both not active regularly


that or if one is active and the other one isn't that quantity is going to be low. And the a parameter


here specifies how the weights are updated in response to this. So the a, b, c, d, and eta


parameters right here are these are the learned parameters, these are going to be your learned


rules to update the weights. So these change once after once per learning step was a once per. So


after the episode is done, you're going to change these capital constants right here, including the


eta, which is the learning rate. These things right here, these are per step. So this is each step


gives you a different o i and o j. And then you'll adjust the weight based on that, you'll see that


these constants here, they are per weight. So for each weight in this neural network, we learn a


separate rule of how to update that particular weight. So the algorithm can, it can basically


decide for a particular way, they can decide, well, if these two things fire together, often,


I want to update my weight very heavily in response to that. Okay, so if the a is very high,


that means the connection responds very thoroughly to when the two neurons fire together.


That is not the same as to say that connection should always be very strong, it's dependent on


the input. So only when this quantity is high, should the network or should the weight be updated,


and the a parameter modulates how well it's updated or how, how strongly it's up, it can also


be negative, it can be zero, basically, meaning that, you know, it doesn't matter if they fire


together, I don't want to update the weight, this particular weight and response that so you can see


that you can learn these rules that can adapt to different inputs, because all of the changes,


the delta here is dependent on the inputs, so on the correlation, but also on the different inputs


themselves. And then there is also a constant right here. Okay, this is, as you can see, it's


a linear function of the inputs of the oi and oj and their product. So I hope this is clear that


the these Hebbian, these Hebbian rules, you learn a, b, c, d, and eta, and that gives rise to an


adaptive network that can change and reconfigure itself over the course of an episode, depending


on the inputs. And one of the things right here, and we'll get to how you actually learn the rules


itself in a second. But one of the things right here is very visible, as I said, in this first


experiment, where it reconfigures itself continuously, but also in this experiment with


this quadruped right here. So this quadruped, usually, it's, you know, you simply walk in a


direction, that's your reward, and RL is perfectly fine at this as well. However, this is a bit of a


has a bit of a trick to it, namely, you are always in one of three situations, either you have an


undamaged quadruped, or it's kind of left leg, front left leg is damaged, or its front right leg


is damaged. Okay, and you don't tell the, you simply sample these situations uniformly, and


you don't tell the algorithm which situation it is in. Now, if you look at, if you compare two


methods, one where you directly learn the weights, you learn a fixed policy to solve, you know, this


is one task, right, this is one task. And all of these three things appear with equal probability.


So you have to learn one policy to make all of this work. If you learn the weights directly,


and you don't have a power, like, there's no doubt that like a powerful RL approach could deal with


this task. But if in this case, if you just put a standard weight learner with the same number of


the same size of policy as the Hebbian, they compare to, if you put a weight learner on it,


it will not be able to solve this task satisfactorily. What it will do is it will say,


well, I need one set of rules that make me walk as far as possible as often as possible. So,


if you can see at the table, I'm already showing you the results right here. The table right here,


if you have these static weights, you can see that it's performing pretty well in two out of


two out of three situations, right? So it what it basically does, it says, okay,


here is what where there's damage. What it does is it says, I'm going to learn to walk with my left


leg using my left front leg. That means when I have no damage or damage to the right front leg,


I'm just fine. And I'm just going to take the hit basically, where I have damage to the left front


leg, because I'm it's just going to suck. So they solved, they solve this like walk more than 100


steps. So that doesn't, since it can only learn a fixed policy, it basically discards the case


where there's damage to the left front leg, it takes that hit in order to be better in the other


two methods, you can see it's outperforming the Hebbian rule in the other two methods. But this


shows you kind of the difference and the power that these Hebbian rules or these generally


neuroplasticity might have because the Hebbian one is perfectly capable of at least in part


adapting to the different situations. Now you can see that is not symmetric. Also the Hebbian


rules they learn to know there's 860 and there's 440 of a thing that should actually be symmetric,


we do expect a drop when there's damage, but it's not symmetric, which means that also the Hebbian


rules, they kind of randomly focus on one over the other, but at least they're able in some


degree to adapt to both. And that's because it depending on the input, you know, it has a rule


in there that basically says, well, if the if the back left leg and the front right leg, you know,


if they fire together, then I want to, if they if they fire together, the sensors that show me that


they're moving, if they fire together, I'm going to wire them together, because that's how I walk,


you know, front, right, back, left, and then the other way around. And if that's not the case,


I'm not going to wire them together. So that would be the situation where you have damage. Instead,


if they are not wired together, I'm going to and can do this in the next layer of the neural


network, wire these other two things together, you know, if, if the first thing is not the case,


I'm going to wire these other two things together to make up for that loss. And there you can see,


there is kind of this logic built into the network. Now, again, I know you can do this with


learning a fixed policy, you can achieve the same effects. The point here is just to show that


given kind of a same size networks and so on, that you that there might be, there might be like a


qualitative difference in certain situations. Again, by no means this is meant to outcompete


RL or anything like this. Okay, so we'll we went there. Now, how are these rules actually learned?


And there we have to again, make a distinction that is completely separate from the Hebbian


non-Hebbian way. Okay, so the Hebbian non-Hebbian distinction was, do we learn the weights of the


policy network directly? Or do we learn the rules to update the weights? Now the question is,


whatever we learn, how do we learn it? And again, we have to draw the distinction this time between,


I'm going to say classic, or even though the terminology is not really correct, classic RL


and evolutionary methods. Okay. So in classic RL, what I would do is I would use my weights in order


to obtain a reward. And then I would update my weights. So my delta w would be proportional to


the gradient of w of the reward. Okay, so in the classic RL, especially in this is a policy gradient


method right now. So I use my policy, my weights to get the reward, and then I would calculate a


gradient. And, you know, usually the reward isn't differentiable. So you have this reinforced trick


in order to pull the reward out. And you can read all of this up if you look at policy.


Gradient, the basic policy gradient methods, but this here tells me I need a gradient, you know,


usually this is going to be the reward times the gradient of my fw of my input. So what this means


is what this means is that if my reward is high, then I, I just want to know what do I need to


do? What do I need to do to make more of what I just did? Okay, and the gradient ensures that for


every single weight in your neural network, you know what to do. So the gradient means that I have


an exact handle on how do I need to change this weight? How do I need to change that weight? How


do I need to change this weight? In order, if the reward is high, and because of this multiplication


here, I want to make more of what I just did. And the gradient tells me how if the reward is low,


on the other hand, I want to make less of what I just did. But also the gradient tells me how that


can be achieved, I simply go into the other direction than I would if the reward is high.


In evolutionary methods, we don't have we don't do this gradient calculation. Okay, now there can be


advantages to not doing gradient calculation. Sometimes back propagation simply isn't possible,


even if it is possible. And this is maybe the case where we're now. What we need to learn in our case


is these rules to update the rules. And imagine you have an episode, and that's kind of episode


you have step step step step. And in each step, these rules are applied, right? In each of these


steps, the rules are applied. And at the end, you get a reward. So what you need to do is to back


propagate that reward through all the steps and then through all the rules. Okay, and that might


be just computationally not feasible, or the rules, the rules right here are pretty, pretty easy, but


the rules might not be differentiable. You actually have the same problem in general in classic RL as


well. But you know, you can cut off time steps and so on. There are various hacks. In any case,


there can be advantages to not having that gradient and evolutionary methods are a way to do


that. In evolutionary method, usually you are don't train one agent, you train a population of agents.


So you have a bunch of these neural network agents in here. And the way you update the neural network


agent is you simply let them run, you know, you let them run your app, the episode. So this is


your W, one of them, you let them run the episode, they get a reward. And then you can do multiple


things. So this depends on the evolutionary method. So you can either pick out the best


performing agent, or you can update each agent according to some rule. The goal here is simply to


to basically, you always want to take your weights, you want to add some noise to them.


And you want to see, does it get better or worse? If it gets better, good. If it gets worse,


not good. Okay, the difference is without the gradient, you don't have a handle on how do you


need to change each individual weight. All you can do is basically random walk and observe what


happens. And if the random walk is, you know, turns out to be good, you go more into that direction of


that random walk. So it's sort of a sort of a poor, poor man's gradient method in these evolutionary


methods. Again, completely independent of what we learn, you can use the evolution evolutionary


method to learn the fixed weights. And that's what actually what happens in the table I've shown you


below. Or you can use the evolutionary method to learn the Hebbian update rules. As well, you can


use RL to learn the fixed weight or the update rules. In this paper, they use evolutionary methods


to learn the Hebbian update rules. And they compare mostly with using evolutionary methods to learn


the fixed weights. Okay, the exact evolutionary step they use right here is the following. So ht


here is going to be the thing that you learn. Now as compared to w being the network weights, h is


going to be the Hebbian weights, because since we learn the Hebbian weights, so how they'll update


each agent is going to be they'll take the Hebbian weights. And this, this here is how you update


right, this is your delta h, how do you update the Hebbian weights? Well, what you do is you you


perform n random perturbations. So I take my weights and I add noise, I just add noise,


okay, so I am here, and I just make a bunch of versions of it. And then I observe how well are


these versions doing? So how well are my random perturbations doing? This is going to be the


fitness fi right here is going to be the fitness. And then I'm just going to perform a weighted


average. So this is my weighted average of these new solutions. Okay, so if this solution here did


pretty well, and this solution did pretty poorly, I want to walk you know, in this direction. And


then again, I do the same thing here from here, I do a bunch of perturbations. And maybe this one did


pretty well. And this one did pretty poorly, I want to walk in this direction, and so on. Okay,


so that's how you you'll change the, you'll change weights or rules or whatever you want in an


evolutionary method is, you know, it's pretty easy. It's easier than reinforcement learning,


no back prop, no nothing. Basically, a black box optimizer. There are more complicated


evolutionary methods, but no, we don't go into those here right now. Okay, so again, I've already


shown you these results. Now I said these static weights are also with evolutionary method, they


also report what you would get with like a RL approach, like PPO, you would get kind of the same


thing as they get as they get here. So, oh, sorry. This is not the same as the table. Yeah, I was


confused for a second. This here is for the car environment. Okay, this is this vision based


environment. So with their method, they get like an 870 rewards with the heavy and based approach.


With the static weight, but still evolutionary method, they get a much lower reward. In fact,


the heavy and based approach is about the same as you get here with an RL algorithm.


And as we said, the RL algorithm, more complicated.


And if you use like a if you use like a state of the art RL algorithm, not just PPO, you get a bit


of a better performance, but not that much if you look at if you look at the actual numbers. So,


you know, pretty cool to see that, again, this is not outperforming anything. This is simply


showing that you can do that. They do a number of experiments where they go in the episode and they


kind of change stuff in the episode. And one cool thing here is that they go and you know, this is


an episode. So at the episode, you start with a random network each time in this heavy and setting,


and then pretty quickly the rules adapt for a high performing right. So it starts to walk,


it reconfigures itself and starts to walk. The reward here again, it doesn't have access to that,


but we can measure it, of course. And then at this step A right here, they simply go to the weights


and zero them out. So they just delete these weights right here. And only 10 time steps later,


10 time steps later, it has reconfigured itself, as you can see right here, in order to walk again.


So 10 time steps later, reconfigures itself, reconfigures itself and after a short while,


right here, it's back to its kind of original performance, as you can see. So that's, I'd say


that's fairly, fairly impressive. In this very short amount of time able to recover from such an


and such an intervention. If you do this, of course, if you do this to your policy network,


that's statically learned, it's going to be garbage. But I guess the fair comparison would be


to delete the heavy and rules themselves. And, you know, so it's not like it's not like this can


adapt to new situations, or something like this, this is still learned for particular environments,


right. But the point here is that you learn the rules. And this is kind of a study on neuroplasticity.


Now, my question actually would be why this diagonal pattern appears and I have not seen


like a clear explanation. Especially is this anti diagonal pattern, it's not so much here in the


output layer, right, this is the output layer, there are 21 actions or so. And this one is this,


this dimension. So not that much there, but there seems to be this rule. And this is not the case


at the beginning, right? You saw the beginning you saw at the beginning, it was pretty random matrix.


So why? Why? Yeah, here, pretty random. And then there's this diagonal pattern. I don't know why.


If you know, let me know. I mean, it's anti diagonal, maybe it is actually diagonal and the


forward the fully connected layer is just defined as something like w t times x. And


but maybe this also depends on the random initialization. But there is no inherent way


why particular neuron would, you know, care about sending information to like the same


height of neuron on the other side. Or is there? I don't know. I'm so is this a property of the


evolutionary or the learning rules? It seems not because the learning rules don't depend on the


position. I'm genuinely confused about this. And maybe, you know, maybe they've written it somewhere,


I've just overlooked it, though I they do reference it, they say, Oh, there's this diagonal


pattern appearing, but I don't think they ever say why it is diagonal. Okay, I might just be I


might just be real dumb. Yeah. So they also, you know, they do some more experiments, they show,


for example, that if you just have random Hebbian coefficients, then your algorithm just jumps


around kind of in in weight space around the zero point. However, if you actually learn these


Hebbian coefficients, as they do, you have like this clear attractor here. And you have these


kind of oscillating curves. When, you know, when when you do that, you can see you're in the


different situations where things are damaged, and so on. So all in all, I think it's a pretty


interesting study. And I think these neuroplasticity is, it's a different way, you know, it's unclear


to say if it will ever deliver the performance that RL delivers. But certainly there are


situations where such plasticity is desired. And if we can also combine this with greater


generalization performance, then, you know, we have agents that can quickly kind of reconfigure


and a lot of work by these these kind of open ended learning community also plays into this


roles, all in all pretty, pretty cool, non standard way of doing things. Last thing,


the broader impact statement. Every now and then we'll look at a broader impact statement,


since these are new, just to get kind of an overview of what they look like. So they say


the ethical and future societal consequences of this are hard to predict, but likely similar


to other work dealing with more adaptive agents and robots. In particular, by giving the robots


the ability to still function when injured could make it easier from them being deployed in areas


that have both a positive and negative impact on society. Okay, well, again, this it's not really


giving robots the ability to still function when they're injured. I first I thought first I thought,


okay, they train it when it's fully functioning, but then they damage it during test time. But as


I understand it, as I understand the paper, they already train it with the damaged versions,


they just don't tell the algorithm in which version it is right now. So it's not the same as


being able to work when injured unless you've specifically trained for it. In this case, again,


I could be wrong about this. Yeah. In the very long term robots that can adapt could help in


industrial automation or help to care for the elderly. On the other hand, more adaptive robots


could also be more easily used for military applications. The approach presented in this


paper is far from being deployed in these areas, but is important to discuss its potential long


term consequences early on. Now, okay, so let's evaluate the broader impact statement. Let's,


well, the first check to do is always to simply replace whatever their method is with the word


technology. Okay, so let's do that. In the very long term, technology could help in industrial


automation or help to care for the elderly check. On the other hand, technology could also be more


easily used for military application check. Technology is far from being deployed in these


areas. Okay, I guess some technology isn't but advanced technology. Yeah. So again, the rule for


broader impact statements seem to be you take whatever your method is and you go up until you


find, you know, you're basically at technology or something equivalent. Because no one actually,


I've never seen a broader impact statement that writes about the actual thing in the paper, they


always go up like one layer or two. And then it basically regresses to technology, even though


very few papers actually would be able to discuss their particular thing. But you know, and that and


that. And then in terms of guidelines on broader impact statement, this one is missing, there's


there's always this, the Holy Trifecta. So the Holy Trifecta is you go like a you know, like


you're a, you're a Catholic, you go with your finger to your head, chest, left and right. And


you say technology, good technology, bad technology biased. Okay, so you want to write a broader


impact statement, go up the layers, technology, good, bad bias. And we're missing the bias here.


So that's, you know, I'm just following what these guidelines to broader impact statements are,


I don't make the rules, I'm sorry, the the heavy ins make the rules, apparently. I'm not heavy in.


Okay, I hope you've enjoyed this paper and this video. Let me know what you think. Check out the


Gauge Equivariant Convolutional Networks and the Icosahedral CNN

What you're looking at here are manifolds.


Specifically, you're looking at 2D manifolds embedded in a 3D space.


So, naturally, these are some kind of bodies that have a surface.


And one of the things you might want to do with a manifold like this


is to define a convolutional neural network to work on this surface.


So, usually we have convolutional neural network working on flat surfaces, such as images.


But what if you could actually work on a manifold like this?


An easy example is a sphere. You might want to work on a sphere.


Why is that useful? Maybe you want to predict the climate.


And then you actually want to work on the Earth's surface, which is approximated by a sphere.


So, today we'll look at the following paper.


Gauge Equivariant Convolutional Networks and the Eicosahedral CNN


by Takao Cohen, Maurice Weiler, Burkai Kichano-Glou, and Max Welling.


So, as I already said, this paper tries to define convolutional neural networks on any kind of manifold.


So, what's the problem inherently when you're doing this?


Can't you just, you know, place a filter, move it around like you do in a regular CNN?


That's exactly the problem, actually.


So, if you have a picture, and let me draw a picture of a cat.


Right? Cat here, here, here, here, eye, eye.


All right. Cat's smiling. This is a terrible cat.


What you do is you have your filter, right?


And that's a little patch in the image.


You're just going to move this filter, move it around, move it around.


And at each point, you convolve the filter.


If this is larger, you convolve each of the elements of the filter.


Here, maybe you have nine elements.


So, each of these elements here is convolved with the underlying image.


At the end, you aggregate all of them into a single point, usually by adding them up.


And there, you, from this image, you produce a new image that is a different thing.


So, if this kernel here, for example, is a specific kernel that detects lines,


you might end up with, or that detects specifically up-down lines,


you might end up with just the lines that go up and down in this image.


So, the eyes here, here, right?


So, this might be the result of this convolution.


Of course, in CNN, these convolutional kernels then are learned as parameters.


So, it seems pretty easy, right?


You just simply take a kernel and kind of shift it around.


At each point, you convolve the underlying image, and that's it.


Well, it's not so easy if you work on a manifold.


And why is that?


It's illustrated here on a sphere.


So, if you have a sphere and you place a kernel,


it really matters which direction you place the kernel in.


Of course, I mean, it does on an image, but bear with me.


So, here, you place a kernel in the direction of this arrow, right?


You place the kernel maybe like this here, you place your little kernel on it,


and you say up, basically up is here, right?


And then you move that kernel around,


and ultimately you want to move it all the way to the other side of the sphere,


so back here.


You want to move it over there, you want to move it all around the sphere, right?


Now, what happens if you move it this way, right?


You convolve here, you move it this way, you convolve here.


You see already by the red arrows, where is up?


Up is where the red arrows point, right?


If you move it along here, the red arrows will always point up, up, up, up, up.


Okay, so you arrive back here with your kernel.


I'm going to draw this, try to draw this dashed with the up in the kernel


being this direction because you've moved it around like so.


But if you for some reason choose to move your kernel in another direction,


namely in this direction up here, then as you can see,


if you place it here, and then you place it here, you place it here,


you place it back here, and ultimately here, where is up?


If you just keep track of where up is in your kernel,


it's always going to be to the front of the sphere.


So on one hand, you have up being to the back here,


and on the other hand, you have up being to the front here.


So this doesn't match.


So it actually depends on which path you take from this original point


to any other point.


It depends which path you take, how your kernel is going to end up there.


And that's of course very unfortunate because we're not used to this


on this 2D thing because if I move it down first and then up here,


over here, sorry, where is up in my...


So if up is here, if it's down here, up is here, and over here, up is here.


And if I kind of move it straight over here and then down and then here and then here,


you see up is always the same direction.


There is no problem in a flat surface.


That's why we can simply define it as we do, but in a sphere or any kind of manifold,


it's called parallel transport is path dependent in technical terms.


The way you transport a thing from one place to another really depends on the path you take.


So this paper is trying to address this problem and define a convolution on any manifold.


So how is this done?


First of all, to define a convolution on a curved surface,


what they do is they say, okay, we have a convolutional filter,


and the convolutional filter is actually some sort of a flat object,


and it works in what's called the tangent space of the manifold.


The tangent space is a flat space that you can define at any point on the manifold.


So here the manifold is the sphere. At some point P, you define the tangent space as simply the,


well, the tangent, a kind of a, imagine a sheet, a straight sheet touching the surface at point P.


So this is now a flat space where we can define a, let's say a regular convolutional kernel,


as we did laying it up here.


The way, the question is how do you map points from the sphere to this tangent space and back,


and that's happening via this exponential map.


The exponential map in this sense is not the same as the exponential map that you are used to


by simply, you know, exponentiating things.


The exponential map here basically means if I want to go from the,


from a point in the tangent space to a point on the manifold, what I do is I take this vector here,


which is a straight vector in the tangent space, and I go on the manifold in this direction for a,


for a predefined length. So this is usually a length of one on the manifold.


For a predefined length, I walk into this direction along the geodesic,


so along the shortest path into this direction, and then I stop, and where I end up,


that's where I basically end up. So that's the corresponding point to this point here on the tangent space.


So to define a convolution fully, it means that first you lay your kernel,


and then for each element in the kernel, you will multiply that kernel entry, let me use a blue here,


and multiply that kernel entry by the corresponding point on the, on the manifold itself.


So by mapping this point in the tangent space to the manifold.


You can also say you basically back project from the manifold to the tangent space,


and there you do your regular convolution. So that's how you define a convolution in the classic sense,


if you have, for example, a sphere. And what the authors here, of course, noticed already is that this is dependent on how you get there.


And in technical terms, it's called this is dependent on your gauge.


So the gauge basically is defining this coordinate frame in the tangent space.


So this tangent vector here is an abstract object is just a vector.


But in order to do something with it in order to do something with a kernel and convolution, and so on, you have to express it in numbers.


And numbers are expressed with respect to a base.


Usually, if you have a vector v here, you can express it with respect to this two basis vectors.


So maybe v is here is two, and here is three.


So v can be represented as the vector two, three, with respect to the base e1, e2.


And so this choice of base basically is what's called a gauge.


Now, I'm probably butchering this topic completely for any physicists or mathematicians listening, but just kind of give you an impression.


So this choice of basis is called a gauge. And we can imagine a different choice of basis.


So let me draw another basis here. So another basis might be one, two, right?


So e1 is here, e2 is here. So the new coordinates here would be something like v can also be expressed in this new basis as, say, one here is maybe one and this is very far.


So this may be five. So five in this direction. And to transform between the two, there is formulas basically from from you know them from linear algebra from vector spaces.


In general, they're called gauge transformations.


And if we want our convolution to be invariant to the basically chosen coordinate frames, we have to say, in technical terms, what we mean is the convolution should be gauge equivariant.


That means no matter which base we choose, if we choose this space, or if we choose this, the result should basically be the same.


So within the computation of the convolution, we must account for the fact of which gauge is chosen, and then basically have the result be invariant.


And with the result, we don't mean the numbers of the result because these will change.


But we mean the the actual object that is resulting the geometric object that is resulting should be equivariant under gauge gauge transformations.


So this is a a, it sounds very technical. But the way I understand it is basically you want to define a convolution on these manifolds, such that you it's such that the result is not dependent on exactly how you shift the kernel around.


As long as you account for the fact that you shifted it around this way should give you the same the same result.


So for this, they define a condition. And the condition is that the kernel must behave as such.


So the V is the input here. And G minus one is a a transformation of the of the gauge, as I understand it.


And so basically, if you transform the input by a different coordinate frame, then the kernel applied to that different input must behave exactly as the kernel applied to the original input.


And then perturbed by these two operations.


So this is this, you might notice this, you might know things like this from discussions, maybe of what it means for a function to be linear or something,


where the function applied to a transformed version must correspond to the function applied to the original version of the input transformed to the result transformed by some some operation.


So if this holds, so this is a condition on the kernel of the convolution. And if you so if you define your convolution in this way, this is a modification to the convolution on the tangent space that we had, then your resulting your result will be gauge equivalent.


What does this transformation? What does what is this new convolution they define? They say if you do the convolution this way, then these things will hold.


So what is this this way, basically, again, you convolve the kernel with the input, but you the F here is the input k is the kernel.


But what you do, if we come up here, again, what you do, you have to do a slight modification, your kernel here, if you want to convolve it, let's say this point here, you would not combine this point with the point along the exponential map corresponding to it, right, this point here.


But what you would do is you would transport this point back along the geodesic to here, and then you would and then you would compute your regular convolution.


So this means sorry.


This is what this term here means, technically.


If you don't understand it, don't worry, I don't either, I guess.


This is simply saying that if you perform convolutions in on manifolds in this way, and you have the appropriate kernel, then they will be gauge equivalent.


So this is pretty cool, because what they do next is they define the convolution on an icosahedron and an icosahedron is a shape a 3d geometric shape that's made of like triangles and I can try to maybe they have drawn it.


Yes, so all right, this is icosahedron. And so they can now define a convolution on this with where filter is basically filter looks like this.


It's this kind of hexagon.


I, yes, and the, and the filters kind of shifted around. And of course, it's the problem is whenever it shifts over one of these boundaries here, or whenever it shifts over the these corners here, what do you do?


What do you do then? Because if you look at it, you can't basically flatten the corner, if you try to flatten the corner, you're going to have this wedge sticking out.


That's terrible.


You're going to have a wedge here, sticking out if you try to flatten the corner.


So you have to define, basically the convolution on this, they do it in their framework.


And specifically, what they do is they flatten and pad icosahedron to this representation. So they put it into five pieces, they have to pad a bit, you see here, each colored edge here, this colored edge corresponds to this colored edge.


So that would be padded from here to nicely define this convolution.


And then they put this into a regular 2d image. With the color things, they are sometimes repeated in this image.


And then they define the filters in this following way.


So this, these are the filters for basically for six channel input image. And what they have to do is they have to do a weight sharing between the filters in a very specific way.


And in order for the kernel to have these properties, they need to see replicate these filters down here. And if you look the different colors in these different, let's call them channels, they each have different intensities.


And if you look down here, they're all slightly different, which means they're all slightly different linear combinations of the of the filter up here or rotations, basically.


They're all differently arranged. But they're basically this blue field here is this blue field, but is also, let's see this one and this one and this one and this one.


So the the weights here are these original filters are basically arranged such that the weights are shared in this form down here.


But if you do this, if you arrange them like this, when you replicate each filter basically six times, because you also want six output channels, then the filter will have the desired properties and your convolution will be gauge equivalent.


So they apply this to to Ico MNIST. So the complete algorithm is actually down here, they can actually use if they pat the image in the correct way to the 2d image, and expand the kernel to arrange it as we just saw, they can use a regular 2d convolution to compute their result.


And that's pretty cool. And this means this also is very, very, very efficient on this icosahedron.


So what they do is they apply this to Ico MNIST where they project basically they project MNIST on an icosahedron.


So they take the image MNIST and they project it onto this, and then they try to classify it on that. I can actually show that their method outperforms other method and learns these invariances.


So learns the symmetries of the icosahedron.


Or basically, sorry, is invariant to them. Being invariant to the symmetries means you don't have to learn them anymore. If you're not invariant to symmetries, it means you have to learn each one of them separately, right?


But if you're invariant to symmetries, then you have only have to learn one thing once and then if the icosahedron is rotated, you're just like, man, that's just the same thing as this other thing.


They also do this interestingly to climate pattern segmentation and also a kind of two or 3D omnidirectional segmentation where you're in a room, a 3D room, and you have an omnidirectional picture, sorry, from everywhere.


You have a picture, a 3D sphere picture from everywhere. You're asked to segment things in the room and actually outperform all other methods on these data sets.


So I find this extremely cool that kind of this ultra theoretical work starting out as ultra theoretical, then gets implemented into something that beats state of the art methods on relevant tasks.


Introduction to Python 3 Programming Tutorial

What's going on everybody and welcome to a new updated Python 3 basics series.


I'm not really the biggest fan of the basics series that I've done in the past


because it's not really what I suggest you go through in the basics if you're


really just getting started and you actually want to learn Python. I think


the way that you really want to learn it is you want to deal with the basics as


little as possible and you know learn the things that you really need to know


and then just jump into actual projects that you personally find interesting. The


basics are boring. So my hope here is to more quickly run through the basics and


get you to the point where I actually think you should stop with the basics. So


on my old basics tutorial series I kept telling people hey go to like part 13


out of 50 and and stop there and start working on things that interest you. So


with Python you can do a million different things. You can make websites,


you can do self-driving car stuff and machine learning and you know do


robotics and make GUIs and just all kinds of stuff and so you don't want to


you don't need to spend time in the basics to learn the language and the


best thing you can do is just start working on projects. So the purpose of


this tutorial is going to be focused more so on someone who is brand new to


programming so someone who heard GUI and probably has no idea what the heck I was


talking about so graphical user interface. I think that you know too


often we just kind of run through the syntax of a programming language and


we're not actually learning how to program but also we're just kind of


checking off boxes and that's not really the way you learn to program so I just


want to show you guys what you need and then you can get off and do whatever the


heck you want to do from there. So just to give you sort of an idea of what all


you can do if you go to Python programming and that you can see a bunch


of options here you could do data analysis and robotics and web development


make various different types of bots so in this case we've got the bot that


plays GTA but also like reddit bots and discord bots chat bots all kinds of you


know competitive bots that you know compete against each other in games and


so on there's just an endless number of things that you can do in Python so


that's kind of what I suggest so let's get through the basics first. Also I


think if you want to learn to program well you have to kind of have have three


things you need to know you know what programming actually is you need to have


a tool set to some degree so learning like syntax and stuff like that is kind


of your tool set and then you need to know how to put those things together


and actually use your tools but if you want to actually start making stuff in


Python you don't need a big tool set so it's kind of like if you want to start


working on cars you know you're not going to go and spend 20 or 30 thousand


dollars on a bunch of tools and the biggest tool chest that you can find in


like a lift for your car you don't need to do that you just need to spend you


know you need a few basic tools and that's it and the same thing is true


with programming you you really don't need to know that much to start


producing some pretty incredible things and those basic things are like if


statements functions for and while loops but arguably you could get away with


like just using a while loop right like you can do a whole lot of things and you


can pretty much do anything with like five basic principles so anyways the


other thing that I just want to bring up before we get too deep into Python is


comparing Python to other languages so you know should you learn Python or


should you learn C or Java or JavaScript or like all these other million


languages I personally am a big fan of Python just because of the the the


rapid way you can develop things like you can make stuff in Python unbelievably


fast and usually the only downside you might hear about Python is you know one


it's it's a beginner's language well I mean I guess it is a beginner's language


but you can do anything in Python that other people are doing in any other


language so I wouldn't let them tell you that you know you can't do certain


things like I I do contracting and consulting work and I frequently get


tried to be right frequently get attempted to be higher anyway I


frequently have hiring attempts on me to do like machine learning stuff and you


know like artificial intelligence stuff and like web development data analysis


this kind of stuff like huge companies are using Python so to call it a


beginner's only language or something is is pretty silly also people call Python


slow this is true and false at the same time native Python is indeed very slow


and but Python practice is not slow Python in practice you're using things


like numpy and like other packages that you'll find as you progress in Python


that are actually just like Python wrappers around you guessed it C or C


plus plus code so it's actually very fast and it's it's gonna be faster than


any C or C plus plus that you or I or 99.99 percent of us would ever write so


anyway Python in practice is also very fast in my opinion it is the best


language you could possibly learn so anyways let's get into it I know some


people are gonna say oh you spent too long blabbing on and my argument to that


is if you do if that information was unuseful to you I strongly suggest you


just go to like you could go to the documentation and go to like Python 3


docs and then just go to the tutorial here and this just runs through all the


things like so if you just want to just jump into Python maybe you already know


a language or whatever come here go through this tutorial here because


chances are you can just zoom through it like if that's what you really want to


do go for it so check that out and also even if you want to continue with the


video series save that you you should come back to this from time to time like


sometimes I'll go through here and I'll like relook at this stuff and there'll


be stuff that like I totally forgot existed like I'll learn new things and


stuff like that so definitely don't forget that this exists like the the


pythons you know core website and their documentation is pretty darn good so


don't don't forget about it anyway let's go ahead and get Python I thought I hit


back but I guess I didn't so so let's go to downloads and you could hit 3 7 right


here so yes I'm on a Windows machine a lot of people will be like ah why not


Linux it just doesn't matter use whatever operating system you want to


use it just does not matter so yes I'm on Windows and so what I'm gonna do is


I'm gonna look I'm on a 64-bit version of Windows I believe the default gives


you 32-bit which I wish it didn't because you're with 32-bit you're


limited to 2 gigabytes of RAM which is kind of silly hmm now why let's see


maybe I'll click 371 here scroll down right so I want the you know AMD 64


executable installer obviously if you're on a 32-bit version of Windows go ahead


and get that one but if you have 64-bit go ahead and keep using 64-bit also


Python on Windows is just traditionally one of the more difficult ones to get


around certain errors so it'll be a little more useful for me to show people


how to get around them so install launcher we'll go ahead and also check


this box to add Python to your path and then you could customize the


installation but I'm just gonna go ahead and install it now and that's fine so


we'll wait for that and then when we're done once you have the programming


language you need something that's called like an IDE it's an interactive


development environment basically actually the I is for integrated and


this is just where you write your code so this is your your interpreter


sometimes or usually it kind of doubles as a place for you to write your code


then also interpret the code and run it and all that you can use either the one


that comes with Python which is idle it's just IDLE I used to use that a lot


I'm a big fan of very simple editors I'm also gonna disable this path length


limit here I really like simple editors I like that they don't give you much of


a crutch the my problem with idle is it crashes sometimes like especially if you


do like a bulk like edit undo or something and it crashes it didn't auto


save and you lost all your work also it doesn't have a dark theme I do prefer


now especially to work with like darker themes so at least to my knowledge I


actually I think at some point it actually did get a dark theme anyway I


eventually switched to sublime text so I'm also going to grab sublime text and


I want sublime text 3 at some point I do actually have a license for sublime text


you don't need a license you can continue to use it forever for free so


I'm gonna grab Windows 64-bit here and grab sublime text and I'll show you guys


how you can set up sublime text it's like it's super simple we just have to


pick what you know what with what do we want to run our scripts because you can


use sublime text to write all you know basically any language so I'll hit yes


here next


install


alright finish there I'm surprised it didn't throw anything on my desktop


let's see if we there sublime text 3 I'm gonna go ahead and pull it down here


you're not gonna let me do that


huh I should be able to add it there I'll figure that out later


anyways so this is like our editor and we can write pretty much whatever we


wanted in here the next thing I'm going to do is I'm just going to go quickly to


file save as and I'm just going to save it to the desktop because that's where


we're going to work for now and I'm going to call this pi 3 tutorial.py


and I'll try to remember it in the future but as you progress in Python


never name your Python program and you'll get a new one


name your Python program the same thing as like what you're ever going to import


any package you intend to use and all that probably doesn't mean much to you


right now but good to keep that in mind immediately so go ahead and hit save


there so now at least sublime text knows it's a Python file I'm going to zoom in


a little bit I'm gonna hold ctrl and roll my mouse wheel so it makes it nice


and big for the so it's easy to see on the video and then we're just going to


do one of the most basic things in Python and that is a print so print and