Yeah. Welcome, everyone. Our first speaker's Andrew McCollum, so I don't think I'd have to do a large, great introduction because everyone should know him already. He's one of the people who has really worked for a long time on the intersection between machine learning and knowledge representation. And he does much work on information extraction, in particular. If you have been there at the poster session on Monday, you have seen very many posters with his name. And I think today the talk will give a nice overview of the topics covered at research at UMass, where he's a professor. So yeah, thank you for coming. Thank you, Veronica, for the invitation. I'm very happy to be here. I enjoyed this workshop so much last year, and I'm glad to see it continuing. Another event that's continuing that I want to mention as I get started is about 10 years ago, I started a workshop in automated knowledge-based construction that happened in Grenoble. And it continued as a workshop nearly every year after that. And just last year, we turned it into a free-standing conference for the first time. And folks like Sebastian Riedel and Fernando Pereira and many others were there. It was a great success. And it will be happening again this coming June in Irvine, California. There'll be a paper deadline, let's see here, most likely in early February. So we'll look for those announcements coming out soon. All right, so I'm happy today to talk about deep learning for knowledge, representation, and reasoning. So sometimes a machine is asked to make a decision from some perceptual information, like an image in which it's asked to say whether this patch contains certain kind of cancer. But other times, a machine is asked to do something that feels less like type 1 kind of reasoning that I described above, more like type 2, something that might require a few steps of reasoning. Now, of course, we can take a test like this and kind of turn it into type 1-style processing by maybe just trying to find documents that are the nearest neighbors to that query. And that's essentially information retrieval. And that goes one step towards helping people answer this question. But it would be nice to get a more detailed answer. There's been quite a bit of interest, of course, lately in question answering from text that we pick a document, pick a segment from that document, and do some additional work on it to try to pull out a single entity. But sometimes in order to answer a question, we really need to integrate information across multiple documents or across many different sources of information. And that's harder to do without some notion of what an entity is, what entity resolution are, and then some notion of what those relationships look like. And so this is one reason that a lot of people are interested in knowledge bases, graphs with nodes for entities and edges for relations. And so given a question like this, we can find, like, where heart disease is represented here. And although there may not be answers that are just one hop away from that, we can do some reasoning through some multiple hops in order to find some answers to our question. And also see the textual evidence that caused those edges to exist. So because of the great capabilities of these, there's been a lot of interest from many commercial entities, including IBM as well, of course, in building such large knowledge bases. So now I want to talk a bit about where the purple items in this picture come from. What I think of as the schema of entity types and relations. So here, for example, in this entity, it's called a disease. And that might be a fine-grained enough notion of what this entity is in order to answer some questions. But in other contexts, we might wish that we had a more fine-grained notion of what this is, like a disease that's a genetic disorder. Here's another entity that has a particular type. But maybe in other contexts, we would wish that we had a more coarse-grained notion of what this is in order to help us reason with more generality. And the same things apply to relations as well. And so one of our major goals is to build a knowledge base that, in a sense, we think of as having an open schema that lets us ask about things at various levels of granularity or ask about things according to many different schema types that arise naturally in the world. And yet, sort of with the same level of openness that we're used to having when we do keyword search for documents where we can just type in anything, ask about anything. But at the same time, preserve entity relation structure and provide the ability to do some reasoning. So that's a lot of what I want to talk about today. And as a first step, I want to introduce you to the work that we've been doing over the last roughly decade in a system that we call universal schema. So our goal is to build a knowledge base. And we'll have many sources of evidence, but among them will be some text. And what does it look like to build a knowledge base from text? Well, we've got to find the entity mentions. I want to do entity resolution to find the multiple places where Bill Gates has mentioned. And I can do this for many, many different entities that appear in the text and elsewhere. And I, as the designer, may have a notion of what knowledge base schema I have in mind. And so I've defined that. And these form some columns in this small matrix that I'm building up here. And I may even have some prior knowledge that lets me fill in, at least for some of these entries, which entries are people or what are their various different types. But it may not be complete. I don't hear. I don't know what Seattle is yet. I might try to augment my information by importing some previously structured knowledge into my knowledge base. Some other knowledge base built by somebody else that has information that's relevant to me. Now, the person who built that knowledge base probably didn't have exactly my schema in mind. And it comes in some different schema. And I could try to align their schema to mine exactly and sort of declare my schema is going to store the truth and that will be the end of it. But there are many concepts that sort of overlap partially. And making that alignment can be surprisingly difficult. And so the approach that we've been advocating in universal schema is that we're going to keep around all of the input schema all at once, not try to pack all of our semantics into one set of boxes to fit them all, and then, nonetheless, learn mutual implicature amongst all of these. So we're going to embrace the diversity and the ambiguity of these many different schema. And another schema actually is the symbols that come from raw text, just the textural expressions for things are yet another schema. It's the natural language schema, and it's very big. And so these matrices can have tens of thousands or hundreds of thousands of columns of ways to express entity types and relation types. And I may observe some things directly, in which case I have some things colored in here already. Here, let's focus on relation types. So if I want to make a prediction, well, is Obama, or was Obama, sorry, this slide's a little bit out of date, a president of the United States, well, that was directly observed and so I can answer that. But I'd like to be able to answer for all the other cells as well, whether they're true or not. And so I want to, I want to sense to do matrix completion here or get this to generalize, and they're going to do that by giving myself vectors for each of the rows and columns, a vector to represent each relation type and a vector to represent each entity pair. And I train this by picking one of the positive observed cells and look at the dot product of the vectors correspond to that intersection, picking another empty cell in the same row that I'll assume for the moment is negative, and that there's another dot product from its corresponding vectors. And my objective function for training is that the first dot product should be larger than the second. So in a second, this training instance will take these three vectors and the objective will say, well, since Bill and Steve are friends, I want these to be close to each other so they have a high dot product. And since Bill is not the president of Steve, I want to push those further away. And training then arranges all of these vectors in a space that causes them to answer these kinds of questions correctly. Learning things like CEO and being an organization member are related to each other, head of state and president are related to each other, et cetera. So here's some examples that come from some real data. Here we observed that Volvo bought a stake in Scania, in Scania, which is another car company, and within we infer that Volvo owns a percentage of Scania, oops, sorry, which is a little fast there. Here's another example that I'd like because it shows the model's ability to capture asymmetry. We observed that Kevin Boyle is a historian at Ohio State and then predict he's a professor at Ohio State, but when we observe that Freeman is a professor at Harvard, we don't infer necessarily that he's a historian. All right, so this is my brief introduction to universal schema. So what do we end up with here? It's a knowledge base, but where instead of having just symbols on the nodes and edges of our knowledge graph, we have vectors to help us generalize. And I find that just particularly fascinating. It's the combination of a structured view of the world and sort of an embedded, a smooth embedding view of the world. And so now I'd like to talk briefly about how we do reasoning here. This may be a review for some of you who have heard me talk before, but I'm gonna be talking about some newer work when I get into box embeddings in a bit. So let's say that somebody asks you about the nature of the relationship between Melinda and Seattle. Well, you didn't observe any direct edge between them. They never co-occurred in a sentence or in any other knowledge base. So firstly, I think, well, I have no evidence. There's no answer that I can give for what I think that relationship might be. But there is, there's other information around those two entities in the graph. And perhaps I could notice that Melinda and Seattle are indirectly connected by a path that says, well, Melinda has Bill as a spouse. Bill is the chairman of Microsoft, which is headquartered in Seattle. And using that chain of reasoning, I might be able to infer with some probability that I think their relationship lives in. And in an old style symbolic way of reasoning, I would write that knowledge down with a rule like this. If A is the spouse of B and B is the chairman of C and C is headquartered in D, then I infer with some probability that A lives in D. And that's all well and good. But what if instead of chairman, I have CEO, I need another rule for that, or CEO, there's another rule. Or what if instead of talking about the spouse or a hop in my chain, I'm talking about a child of instead. Well, now I need a combinatorial combination, number of different rules and it's looking painful. So we have been working, leveraging the fact that we have embeddings on the edges of this knowledge base to try to do reasoning, not on symbols, but reasoning on vectors instead. And after, of course, many decades of research and work on what it means to do logical reasoning on symbols, I find it especially fascinating to consider, well, what does it look like to do logical reasoning on vectors? So we've been using a recurrent neural network that consumes an arbitrary length path at each step, consuming the vector of the new edge that's being consumed and outputting a vector that represents the semantic composition of what it believes is the nature of the relationship between the end points so far. And by the time it's completed this path here shown here, it produces, our model indeed produces a vector that's very close to the lives in relation. So the parameters of this recurrent neural network have basically learned, I mean, embedded in there are rules of logic about how to compose the meaning of the semantics of these steps of this chain of inference. And we've been doing this work since 2015 with a number of improvements. When run on a moderate amount of data like this, they can hear some example predictive paths that pop out. Here I'm trying to predict, given a book, what's the original language in which it was written for a case in which there's that direct H does not exist in the knowledge base. The path found by our system goes from the book to another book, the previous one in the series of books. Who was the author of that book? What's another person who shares, sorry, what's that person's nationality? What's another person who shares that nationality and what language do they speak? So that seems like kind of a reasonable chain of inference to try to make an estimate of what a book's language is.  And over time, through various different research improvements, accuracy on this task has been growing. And actually there's some work that we just put on the archive yesterday that also has to do with chains of reasoning. But in a way it's like a mixture between chains of reasoning here and textual question answering in that the chains of evidence it consumes at each step are not just individual links in a knowledge base, but actually like whole passages of the kind that would be consumed by a textual based question answering system. So in a way it's like a looser way of doing these chains of reasoning and I'm quite excited about that work also. This is work by one of my students for Jarcy Doss. All right, so in a really big knowledge base you also need to think carefully about how you find the path that you think leads to the right answer. And this is a path that makes sense but there are many other paths and some of them just don't really carry many semantics, much semantics at all. And in a big graph there are many, many paths to explore and so we'd like to be more clever about how we explore the different candidate chains. So this is essentially like searching for a proof for the answer to the question that we're trying to address. And we've been doing work in reinforcement learning to do that search intelligently. So here the setting is that you're given an entity in a relation and to answer the question you're asked to fill in the second entity to complete the triple. And so we start at the source entity, there are a number of different outgoing relations that we could choose among. The reinforcement learning agent chooses one of them as an action and continues making choices until it thinks that it's arrived at an answer and if it outputs the answer that's correct then the reinforcement learning agent gets a reward of one. Hello, Selim, welcome. I'm so happy to see you here. Thank you, well I'm relying on your pointed questions as usual, I'm sure you'll keep me on my toes. And if it arrives at the wrong answer then it gets a reward of zero. And we train this on situations in which we know the true triples. And indeed we're able to get this to successfully learn because we're trying to learn by gradient descents which requires a smooth space but the actions are discreet. We need of course the reinforce trick which is a way of using sampling to get gradients from discreet choices like this but it does indeed converge and there are some special tricks we can use to get it to converge even better. And here's an example of an inferred path that's learned by this reinforcement learning agent. Let's see here, I guess we could look at the top one. So given the film step up revolution we're trying to determine its country of origin and there was no direct connection to the knowledge base but it finds that if it goes to the production company and then asks where it's located then that's a chain that may provide some good evidence. All right, so we've been talking about reasoning about entities and their relations and textual evidence and I wanna try to paint a larger picture here. Sorry, this is a bit abstract so let me give you a guided tour here. So the orange circles at the bottom are meant to represent mentions in text of entities and the crayon edge here is maybe some text that we believe is expressing some relationship between them and the blue dots are representing resolved entities. And so the scenario I've described so far I think looks at some particular textual evidence, resolves them to their entities and then based on the textual evidence decides that well we think that there's some relation there. So this is the world view that I've been talking about so far but actually I think that we should actually be thinking with a world view a bit more like this. What do I mean here? So the light blue circles down here I think of as sub-entities. As an aside here it happens to be, I mean I haven't talked much about entity resolution here but we've been doing a lot of work there as well and the style of entity resolution we do is one that's hierarchical so it builds trees along the way. So there may be 50,000 mentions of Barack Obama and there's some node in that tree that represents Barack Obama at the entity but there are many other, there's a lot of substructure in the tree between the mentions of the leaves and the Obama node there and I think about those nodes as what we call sub-entities and maybe a lot of us don't know a lot about biomedicine including me but for Obama we could imagine that there would be some interior node there that would represent Barack Obama as teenager in Hawaii, Obama as senator as candidate for president, president and post-president and that certain relationships would be true of those sub-entities that are not true of other sub-entities so it's not always best to represent an entity say at the high-level entity level we might sometimes like to express relationships at the sub-entity level. Similarly there's further abstract structure above the entities and I think of these things as types like you know Barack Obama as a person and a man and the politician and a book author and so those are additional relationships and we can also, I mean additional types and we can also put relationships there and I think of that as representing common sense which is really quite nice. So to answer a question we may like to operate at different levels of abstraction here and actually make chains of reasoning in a graph that looks like this which sometimes will operate by traversing edges up at this abstract level because we can answer a question perfectly fine there but in other cases we really need the context and the specificity maybe even to traverse edges all the way down to some particular piece of text capturing some particular context along the way on our chain of reasoning. All right so we've been thinking then quite a bit about these very deep abstraction hierarchies and that's reflected in the fact that these entity types that we have here which we've previously been treating as or like in a sitting in some flat space actually would be better represented if we put them into a hierarchy and so a couple years ago we were looking at if we have a hierarchy like this can we leverage this to do an even better job to learn better vectors that give more accurate answers and the answer to this is yes for this we need some mathematical operation between vectors that's not symmetric because I'm trying to capture a directed arrow here an asymmetric relationship between say person and athlete you know all athletes may be persons but not the other way around so I can't use dot product which is symmetric but I can use a bilinear model which is non-symmetric that's one choice and other choice is to use complex vectors vectors that have complex numbers and all of their elements and that also just by the way the mathematics works out there happens to be non-symmetric and so when we do this we can also then take textual mentions and learn to map these into vector space and then be able to predict their types as well so when we train in a way that trains with an objective on the matrix that I described earlier the objective I described earlier but they'll also add to our objective the notion that you should obey the tree edges that we have as prior knowledge then indeed we do a better job so I know which I'm about to describe in a moment so let's see many of the existing type hierarchies that we were out there in previous data notably though at the most prevalent amount and I think the FIGAR data set of fine grain types wasn't nearly big enough for us we were interested in having something much bigger so we created a new data set we called type net from the union of word net and free base and some automated editing as well as picking the types that really made the most sense and chopping off the upper parts of the word net hierarchy that seemed just a bit too abstract and end up with hierarchies to give you a sense there's some samplings of some parts of the hierarchy for parents of an Olympic host city or parents of cheese or parents of a drafted athlete and so you can see it's not a tree, it's a dag which is interesting yeah and it can be quite deep so and what we found is that in comparison with our original methods that did not use the hierarchy at all represented by these upper numbers 68 and 69 using the tree in various combined ways yield here more than 10% increase in accuracy which we are very happy to see all right so now for the main body of new work that I have in mind I want to talk about the following so here's this rich hierarchy and we've already noted that it's not just tree shaped it's dag shaped and although I've drawn hard edges here I actually really want to claim that I'm compining for something a little bit softer or something that would be able to represent probabilities you know things like many politicians are book authors but not all of them and so it would seem unsafe to put an edge between you know from politician up to book author but I'd rather not just drop that known correlation on the floor and not represent it at all so what kinds of representations can I use to represent dags and also probabilities and also sort of gain some of the softness that I get from representing things in terms of in some embedded fashion and this leads me to work that I'm extremely excited about that we've been doing over the last three years or so on box embeddings and this is work by my students Lorraine Lee and Luke Vilnes Dong Zhuzheng and also one of my new postdocs Michael Barracos actually with us here in the audience and we've also been doing some collaboration with IBM on this topic as well. All right so in most of the work on deep learning for an LP and build deep learning generally how do we represent concepts we represent them with vectors which we can think of as points in dimensional space and vectors do a nice job in a lot of ways like say let me go back so they can be arranged so that neighborhood relations amongst the vectors make sense the animals tend to be clustered together here differently from the furniture and but there are some regrets here so here I have rabbit and mammal the vectors here are not representing the notion that well the mammal is a more general concept than a rabbit and it would be nice to capture that in a very clear way and so with that in mind so they don't really capture a region with the notion that some concepts have a broad region and other ones are more narrow also the typical operation done between them is a dot product which is not asymmetric so with that in mind in 2014 my student Luke Vilnes and I had an eye clear paper on associating each concept not with the point but with the Gaussian in space perfect thank you so general concepts can have a broad variance and more specific concepts can have a more narrow variance we can we therefore have like a region for each one of these there are asymmetric distance measures between these Gaussian distributions basically we used like a KL divergence which is asymmetric we can represent concepts that are disjoint from each other but Gaussians had a number of problems that I don't have time to get into all of them but among them is that they're not closed under intersection so the intersection of two Gaussians is not Gaussian shaped here and so that made us interested in some alternatives and one that's been explored by others they are so-called cone representations and so here we associate with each concept a single point but actually that point is going to represent a region that spreads away from the origin in all of the dimensions so it sort of represents a cone that spreads away from the origin and so concepts with embedding closer to the origin cover a broader region and the further you get from the origin it makes a smaller cone that represents more specific concepts and so you can represent a region you can have asymmetric distance calculations it's closed under intersection because everything that's both an herbivore and a mammal would be captured by a dot at this intersection exactly but it's not it's not disjoint I can't capture things that are disjoint because far enough out there everything overlaps eventually so there's a probabilistic version of this so here I have a rabbit and a deer but this intersection here represents the region of being both a rabbit and a deer at the same time which seems, well, that just seems wrong and furthermore it gets even more ridiculous because if I say asked well what's the probability of being a rabbit conditioned on being a deer well what does that look like in Venn diagram fashion that's like well you take the volume of deer sorry you take the volume of the intersection and divide it by the volume of deer and actually the volume of the intersection is a pretty large proportion in comparison to that so it's like I don't know what does that look like almost like a third or more than a third so again this just seems wrong the fact that we can't represent disjoint things so with that in mind we've been working on associating each concept with an indimensional box in space they capture a region one box can contain another box there are asymmetric distance measures between them they can represent disjointness and also boxes are closed under intersection the intersection of two boxes is another box furthermore we can train these boxes so that they all exist in they sit within the unit box which will represent the universe and have probability one and the volume of the boxes inside we can train so that their volume is equal to the marginal probability of that concept and we can train them so that the volume of the box intersections are proportional to their conditional their joint probabilities or their conditionals when normalized by one of them so the fact that these represent very crisp probabilistic models has us especially excited and let me step back to explain how and why what do I think of as like the two biggest advances in all of machine learning in the last three decades I think it's been compact representations of joint probability distributions I think graphical models on the one hand and secondly representation learning I think deep learning and this feels like it's a step that sits at the intersection of both of those we're learning representations sort of very much like deep learning but we have a very crisp formal compact representation of probability distributions at the same time all right so let me give you some intuition for what this looks like like how does training look like we'll have a bunch of concepts we'll initialize their box positions randomly and the training data will consist of giving it some marginal probabilities and some joint probabilities or maybe some conditional probabilities and then the model will do gradient descent gradually moving the boxes around in order to satisfy those training objectives and then settle some placement it's done what is this little demonstration data it's actually movie data from movie lens where each box corresponds to a movie and its volume is like the marginal probability that people like that movie and intersections correspond to the joint probability that the same person would like both movies so overlap between boxes indicate that the same kind of people would like both of these movies so the purple rectangle in the background is forest gump lots of people like forest gump the two reddish ones are lord of the rings which have high overlap two and three which have high overlap with each other there's some Disney movies off in the blue off to the left that also have high overlap with each other and the narrow bands at the bottom are some H.K.Hcock movies so this makes sense and when we compare the accuracy of learning models about this market basket problem or these overlaps using various alternatives to boxes we find that boxes are providing some accuracy advantages so what might be considered a nice default like some bilinear model it's getting about 83 here and here we're getting 89 with this box model okay so boxes are not perfect though and they do have some limitations and one of them is that if you have just one box per concept there are some valid probability distributions that those boxes cannot represent and one of them is one in which we say that each concept has equal marginal probability each of the pairs has some non-zero joint probability but the triple all together has zero probability and it is possible to have such a distribution but these boxes with their convex shapes just can't represent that so one way to represent that instead is to have a mixture of box models and essentially we've taken our universe and divided into two sub universes where each concept now has a box on each side and this given the constraints can learn the constraints well you can see on the left hand side the green box kind of like shrinking all the way to zero and like the weighted sum of those two combinations does yield exactly the desired attribute okay so like there are various different now let me talk about some different ways we could think about the dimensions of these boxes so far we've talked about the dimensions as all corresponding to a single box in n dimensional space so here are four dimensions that I've just drawn here separately and this would then correspond to some four dimensional box so here's a Tesseract that's just representing that but of course we could also maybe we could consider dividing the dimensions such that two of the dimensions correspond to one box and then two of the dimensions correspond to some other box in a different space and note that because two boxes in order to overlap have to overlap in all of their dimensions you can think about the dimensions within one box and the way we calculate overlaps is being like calculating a conjunction if you're not overlapping it just any one of those dimensions then you don't overlap at all right but given that we do it like a sum or a weighted average amongst these two different box models these act more like a disjunction and so by setting up boxes like this we're able to really in a very native way represent disjunction of conjunctions which I think of as logically speaking a very powerful way to be working we can also of course have just represent a whole collection of one-dimensional boxes and we've been doing some work there as well and so now I want to describe some ways that we've been trying to apply boxes and another one is to do a common sense so I understand IBM is participating in the DARPA machine common sense program and we're very happy to be in that program also so we've been thinking quite a bit about common sense and a general kind of common sense we're interested in is being able to say take some arbitrary phrase including phrases that we've never seen before we put them into an LSTM which is trained to output the parameters of a box and then given two different phrases we can get two different boxes and look at their overlap in order to be able to calculate well given that you observe a gray haired man wearing a tie what's the probability that you're observing a man in a suit and that we would calculate that by the overlap of these boxes so we took a large number of images from Flickr threw away the images but just looked at the captions that have many different captions that correspond to the same underlying world truth took each of these captions and parsed them divided them up into pieces so that we could count various both fine grained and general and fine grained and more broad pieces so that we can basically count like how many images that had two dogs also had grass in them and by counting this we can get joint probabilities and marginal probabilities and then train this LSTM to predict that so here's some example outputs from this model let's see here given that you observe holding an instrument what's the probability that you're in the basement well that's pretty low not impossible but it would be unusual for somebody to have an instrument in the basement if you're watching a performance what's the probability that you've got a group of people that's pretty high if you've got an adult in a dance store what's the probability that he or she is wearing clothing well that's pretty high but not one and then here's one it's just absolutely entailed and that makes sense as well and what we find again is that in comparison with some alternatives of the box metal methods do well okay I have five minutes left I think I should be able to finish this up so as a next step and we've been very excited to begin to think about what would it mean to do I mean what I've described so far is a bit like shallow neural networks just like corresponds to just word vectors or word embeddings but what we'd really like to be doing is to be doing deep learning instead and in the way this is motivated by the example I gave before we were given a sentence this was represented in terms of vectors as it went into the LSTM which is all you know LSTM's work on vectors right not on boxes and we just output a box at the end but of course we'll be nice to capture this notion that well a man is a concept at a certain level of granularity and that there are other concepts and we know how they relate to each other using the really nice box semantics that we have and then to have some sort of model that can operate on boxes and they would output a box and that seems like it would give us some better capabilities we could start with boxes here I suppose and then try to turn these boxes into some sort of like sufficient statistics of or some statistics of boxes that could be vectorized and stuck into the LSTM but there's just so many different possible statistics there that would try but probably fail to capture the geometric properties of these boxes that I'm not optimistic about that working so what we'd really like is some mechanism for doing box to box transformations here and so for that we probably want something that corresponds to multiplication and addition just like we have for vectors and so what we're looking for is what sort of operations would form a commutative monoid on boxes that would be closed under intersection be associative, have an identity element, things like that so for multiplication it seems like intersection is a reasonable choice and there certainly is the identity element here right just like the full box here gives you back the input there's some question about what to do when two concepts are disjoint what is their intersection well one thing you can do is calculate in a way like the negative intersection like the space between them is like a negative box in space and that negative box as a center and you could just say that well the intersection of these two things will be a zero width box at the center of that negative box and that's actually, there are other alternatives but that's what we've been thinking about lately so we also need a way to do addition so we've been thinking about this as almost like these represent two different distributions what does it mean to add two different distributions there's like a weighted sum of those distributions so in a way that looks like this but we want to represent it with a single box in the output so we'll find like the single box that best approximates the weighted average of the two input distributions and one way that we could think about getting that single box that does this approximation is by taking an average of side lengths and centers that's okay but it seems a little bit odd that this very small box has just a big and influence on the center of the output box than this large box does so maybe we should do a weighted average instead say a weighted average of the centers in order to get something like this and we have to think, let's see here and then let's see, what did I want to say here and I guess then the identity method here is just the zero width box we'll get you back the other input okay so it's just some things that we can do here so our parameters will then look a lot like the parameters of a neural network they set it in like a matrix but instead of a matrix of numbers it's like a matrix of boxes and so it's nice just to think about what do these operations look like so one is can we just like you can do in matrix algebra have some setting of the parameters that just produce a match of the output take the input and make the output identical to the input and so it's sort of just like with matrices, we, regular matrices we can define box parameters like this which will exactly yield our inputs that seems like a nice property we can pull out a single box with something like this that pulls out this box to match here we can have a one hot embedding that says well just pull me out one stripe of my parameter matrix by turning on this box and zeroing out all the rest that works in the way we would expect it might be another nice property to have who I really have to wrap up is this notion that you also have in deep neural networks in which one stripe of the parameter matrix kind of corresponds to a prototype in input space and if the input is near that prototype then the hidden unit corresponding to that stripe will light up strongly and so that's a property that we would like so here's an input, here's some parameter layers that actually match this exactly so in a way this layer is a prototype that matches this exactly so what would that look like so I guess first we would do the intersections here and get this and then we would do the weighted sum together here which yields this but this is not maximally active it's not filling the space so it's a little bit broken so one thing that we could do is say well you matched exactly the layer parameters here and so let's just it's almost as if the layer parameter here let's treat those as if they were the full universe in each one of their spaces so we scale up each one of these things according to the layer parameters here but this has some problems which I think I've run out of time to explain with apologies but there's a very nice alternative that Michael came up with in which we sum together the layer parameters use this shape to scale up the result of the dot product and this gives exactly maximal activation for a match of the prototype and also matches other nice properties that we want for the rest of the model to work and I'm sorry that I've lost a lot of time to explain this so these deep models for boxes we hope will allow models to make use of relations that are difficult to model with vectors alone they'll be helpful in modeling multi-relational knowledge bases we're hoping that in addition to providing some probabilistic semantics deep in the middle of the network that they may then also be more interpretable although we have yet to see that it's just one of our hopes and with that I think I'll close without time to talk about my last musings and I'll take questions thank you so much yes yeah I think so negations are tremendously I think difficult both in symbolic to do reasoning with in symbolic logic as well as in other places and I can't claim that we're poised to do much better here you can clearly say what region of space corresponds to a negation the shape of that negation is not a box itself so that said you can condition on negations and still often efficiently calculate the volume to get an answer to a probability and what that means is that you're going to calculate the volume of something that's not exactly a box shaped but it's still so simple that it's pretty easy to calculate the volume of it so I think that's a partial help but there's more to be done thank you for the question I think so too that's a wonderful insight I've also talked with some people in machine translation who have said that one of the common errors made in translation is that the word produced in the new language is related to the input word but somehow was at the wrong level of granularity like the input said athlete and the output said runner or something like that and it was just too specific and so because the vectors weren't directly capturing a notion of granularity it had a mess here and maybe something like this could be helpful thank you I'm so glad that you asked this is a common kind of question so it's sort of the case that you can represent the boxes in terms of some vectors and in fact we do internally represent them as the position of the center of the box and each of the side lengths but the magic of what goes on here is that kind of geometric reasoning that's done in each one of the processing steps which is not equivalent to just doing say products or other typical vector operations and so that's where I claim the improvement is thank you this is another great question thank you so much for asking there has been far too little work on how in knowledge basis to represent things facts that may change over time Gerhard Weichem is done a little I'm very happy to have a new PhD student who just finished his master's with a part the Taliq Dhar at IT Bombay who's done a bit of work on this with him actually we're looking at trying to make some next steps let me just say before I run out of time one brief an approach that we're now working on that I'm quite excited about that builds on boxes is to take one dimension of the box and say that's a time dimension and then boxes can represent extents in time and they can represent an extent during which something was true and then the areas in time in which it was not true now that doesn't directly I think answer your question about how do we say that I think that there's a lot more that I could say about your question but apologies I don't think I've fully answered your question but I think I've run out of time thank you for your questions


I have a new spider. I will need a camera that works at night. I believe that I now have a working infrared camera. Let's build ourselves an infrared light. Fantastic! All nine LEDs work. A quick spider update. She's continuing to do some pretty hefty earthworks. The amount of earth here is now considerably bigger and there's a mysterious hole here. Though I'm not really sure what she's trying to achieve with that. The trap itself, which is rather hard to see, particularly she's covered it with earth, is the tube here. I believe that she spends most of her time living in there. It extends underground, under here somewhere. So I've no idea what this stuff is all for. So that will be interesting to find out. So we come back to the camera. Unfortunately, there have been a few developments. I was planning to use the G-Photo program, which is a UNIX command line program for driving cameras. Unfortunately, it turns out that G-Photo doesn't really support this camera very well. It'll download images from the onboard storage, but it won't let you trigger captures, which is not very helpful. So I need to do something else. Now, while the camera will actually do video, if I can set this to video here, and once that goes away. I mean, it works. It is now recording. You don't get AV output while it's recording annoyingly. You only get 640p, which isn't very good. It's very noisy, and the 32GB SD card that's in it has only got enough space for, as you can see, 140 minutes, which isn't enough. So I'm actually going to resort to using time lapse. Luckily, if I put this back to auto, there is a feature called continuous recording, where if I push this button and go down to long period, and if I hold down the trigger, it takes continuous pictures. And I can decrease the period a bit by switching it to manual mode, which I want to use anyway, and increasing the shutter delay. So yeah, that's actually set to 2.5, well, 1, 2.5th of a second. That's not doing continuous recording, because every time you change mode, it resets. There we go. You can see the icon on the top, like so. The orange light is the autofocus. I can turn that off, simply going to focusing, manual focus, so like so. Annoyingly, it uses the same set of controls for changing the aperture and shutter interval that it does to change the focus. So when it's set to manual focus, you then can't change the f-stop or shutter, which is annoying. But this will at least let me focus. See if we can get this a bit better. That's the wrong way. Oh yeah, we also... There is something wrong with the focus. I believe I know what the problem is, which is that it relies on reflection of the... Go, that's better. It relies on reflection of the filter to make the focus work, because I took the filter out rather than replacing it with a simple piece of glass, then the autofocus now doesn't work at all. But that should now be focused. It even thinks it's focused. You can tell by the way the crosshair goes yellow when the focus changes.  I lost the focus. This will take it. There we go, yellow. So now I can take pictures and it's reasonably in focus. Of course, the problem with relying on holding down the button in order to take pictures is it requires you to hold down the button to take pictures. I did look at a few other ways to get around this, including disassembling the camera in order to solder on wires to the pads for the trigger button. That would allow me to have an actual switch somewhere, presumably hanging out the side on a wire. However, in order to get at this, you have to remove the entire insides of the camera, which involves desoldering all the flash wires and don't want to do that.  What you do is you hook this assembly around here, like so, and then this rubber band goes on there and pulls the trigger down. Yeah, it's a little bit dubious, but here it is taking pictures, as you can see, without me touching the camera. So with luck, it will continue doing this all night. As for the other side of things, let's just push this aside a bit. Let that keep going. On the other side of things, we've got this, which is more dubiously 3D printed stuff. This is a mounting attachment for the infrared light. This hooks over the side of the spider enclosure, which allows the actual light itself to be oriented.  These connect up to a USB power supply. The light itself just slots in rather poorly. Again, a rubber band would probably make a world of difference, just holding it together a little better. So all I need now is a power supply to set the thing up with the camera on a tripod pointing at spider enclosure. And then I need to carefully focus and calibrate it. And then I think we're ready to go, which will be exciting. So what you're looking at here is the raw footage. As you can see, it's very purple. We can easily fix the purpleness by changing the saturation and make it more visible by changing the gamma as well. The camera is taking 1600 by 1200 photos with an exposure of about half a second. You're seeing them here at 30 frames per second. Each frame takes about two seconds to take, so that means that every second of the footage here is about a minute of real time. You can see that focus is still an issue, but honestly, this isn't too bad. Off to the left is the lamp. The substrates you're looking at is a mixture of sand and cocoa fiber, which is very light and holds moisture well. It's been made bioactive by adding isopods and springtails. These will eat any waste organic matter and help keep it clean. I've added a handful of leaf debris on top, and a few dead moths collected from the window sills to give them something to eat. The moths also help provide scale. The springtails seem to come to the surface during the night. You can see lots of activity all over the place from them moving around. I wasn't expecting quite so much, honestly. On the second night, the focus didn't work terribly well, so everything's just a bit fuzzy. There was no activity all night, except just after dawn, where you can see her moving up and down the tube. She seems to be pushing earth out the top of the tube. That explains where the mound is coming from, so this suggests an extensive burrow below. Apparently she will dig quite a large chamber to live in at the bottom of the burrow. I'm surprised that there was activity quite so late. This is now broad daylight. I thought they were strictly nocturnal. The activity continues until the camera card fills up and the recording stops. She's making about one trip every few minutes. On the third night, I zoomed in on the mound and finally got the focus right, so everything is much clearer. You can see the isopods rummaging around constantly. Burrow activity starts earlier in the middle of the night. I don't have an exact timestamp. She doesn't seem to be pushing earth out this time, but something is happening inside the mound from the way it settles. I discovered reports that their burrows can be a meter deep. This enclosure isn't nearly big enough for that, but she's obviously busy. On the fourth day, I added some food from my collection of feral house crickets. A few managed to chew their way out of their enclosure a while back and I'm still attempting to round them up. The cricket is very active and with a half second exposure, it doesn't really show up clearly. It's always blurred. After a while, it finds one of the dead moths and gets very interested. It's clearly hungry and I'm glad to know that my apartment floor doesn't have very much cricket food on it. There's a certain amount of interest from the burrows the cricket comes near, but the cricket's ability to jump makes it hard to catch. From the way it moves, I think it's aware that there's something there. Finally, she emerges from her burrow and we get to see her for the very first time. First legs and then tail. By visible light, she's jet black and clearly she reflects very little infrared either, so she's still practically invisible. And then the cricket steps in the wrong place. I think the spider manages to grab it by the leg, but it's unable to bite it and kill it with its venom and eventually it gets away. Crickets are pretty strong in their jumping muscles. She then clearly spends some time during repairs and ignores the cricket completely for most of the rest of the night. It even manages to step right on top of her burrow and nothing happens. Just before the card filled up, I can see a little activity that may be interest again, but nothing happened in the footage I have. However, the cricket was gone the next morning, although there is a possibility it may have just escaped. So on the next day, I added another smaller cricket to see what would happen. I want to make sure the spider is actually eating. Absolutely nothing happened all night, even when the cricket was literally poking its head into the spider's burrow. I think this shows that the spider did actually catch the first cricket and is now underground digesting it. She'll probably start moving in a week or so when she gets hungry again. So, as projects go, I think that one's been a success. I'm getting some decent pictures, some really interesting footage of all sorts of stuff happening at night. We're not seeing much of the spider, but given that they hardly ever leave their burrows, I'm not really surprised. I would love to get some footage inside of the burrow itself, but it's just too small. While I do have a little endoscope, which I've pointed at the burrow mouse, this is what you're seeing now. It doesn't really show much in the way of details and the picture quality is terrible. You can just about make out the inside of the burrow, but that's about all. Another sign of the spider, of course, she'll be down at the bottom inside her chamber. So, as I said earlier, I'm going to wait a week or so until she starts moving and see if I can capture some more footage. I can build a better camera mount and get a closer look at the mouth of the burrow, where the action happens. One of the issues is trying to keep the cricket in as of when I set up this particular recording. The small cricket was still in the enclosure, but while I was fiddling with the camera, it vanished. So, I suspect it jumped out. It's now somewhere on my workbench. The cricket has, in fact, not escaped. It showed up later. It was just hiding. You may also notice that it has eaten most of that moth. I'm going to have to find some more for the isopod. I'm afraid this is a problem with cricket. I need to find something else that she might want to eat that's a little less prone to bouncing. Come spring, when the weather warms up, I'm going to find her somewhere safe and sheltered under a bush somewhere and let her go. These personal web spiders will apparently live from 8 to 10 years. This one's probably about four years old. So, that's quite a lot more ecological investment than the usual one-year jumping spiders. Anyway, I'm going to call that finished. I hope you all enjoyed this little series of videos and please let me know what you think in the comments.


Welcome back. We will continue the discussions on the existence and uniqueness of solutions of initial value problem, existence and uniqueness of solution of initial value problem. In the previous lecture, we have seen several examples of initial value problems. Some are having infinitely many solutions and some are having no solutions and others having infinitely many solutions. So, now we will characterize under what condition an initial value problem will have unique solution like the problem posed by Hadamard. Once an initial value problem is given, under what condition the system has a solution and under what condition the solution is unique and conditions for which the solution continuously varying with respect to the initial condition. So, consider the initial value problem given by the first order differential equation dy by dx is equal to f of x comma y with the initial condition y at x 0 is y 0. So, f is a function.  Two variables as it is defined on r 2 f is a function of two variables x and y with respect to the initial value problem. The first argument x that is a independent variable and y is a dependent variable which is of course the solution we are looking for. So, f is defined on a domain D. So, D is a domain in r 2. By domain we mean D is an open set in r 2 and also it is connected, it is a connected set. Any two given bonds in D that can be joined by a continuous curve which is completely inside D. So, D is a domain in r 2. So, our initial value problem given by dy by dx is equal to f of x y and y at x 0 is y 0. So, this is your x axis and this is your y axis and a point. So, this point is x 0, this point is y 0. So, initial point is x 0, y 0. We are looking for a function starting from this point and f is defined on the domain D and to make sure that first of all the solution, the initial value problem has a solution. We require certain conditions on f. So, let me first state the conditions and we will do the proof later. So, for existence, so if f of x y is continuous on D, then there exists a solution y of x to the initial value problem in some neighborhood, in some interval say x 0 to x 0 plus h. So, we will prove this existence results later. So, broadly speaking, if f is continuous in the given domain, the domain contains initial point x 0, y 0, then one can show that there exists a solution at least in some neighborhood that contains the initial point x 0, y 0. Now, uniqueness problem, so if f x y is lipschitz continuous with respect to the second argument, argument y on the domain, then the initial value problem has a unique solution. Rather, the solution of the initial value problem is unique if solution exists and if x y is lipschitz continuous with respect to the second argument that is y, then the solution is unique and the third problem is stability. So, if f of x y is continuous with respect to x and lipschitz continuous with respect to y, then the solution of the initial value problem varies continuously with respect to the initial condition y 0. So, these are the three major solution to the Hadamard problem. So, we will address each one of them separately and we will give sufficient proofs for each of them. See the existence problem, what we require is the continuity of f with respect to both x and y, continuous with respect to x and y. So, because f is defined on the domain D, which is a subset of R 2, if f is continuous with respect to x and y, then we can show that there exists a solution in some neighborhood containing the initial point x 0, y 0 and the second problem uniqueness is guaranteed if f is lipschitz continuous with respect to the second argument y and of course, continuity is required for the existence of a solution. So, continuity is also required for the existence of solution and uniqueness is guaranteed if f is lipschitz continuous with respect to the second argument. And the stability, the continuous dependence of the solution on the initial condition y 0 is also guaranteed if f is lipschitz continuous with respect to y and continuous with respect to x. And we will show it and for a lipschitz continuity, we have already seen the definition and examples of a lipschitz continuous function in the preliminaries. There we treated function of a single variable, a function of x only f of x and also we have seen sufficient conditions under which a function is lipschitz continuous and examples of lipschitz continuous functions and examples of functions which are not lipschitz continuous. Now, since we deal with the functions of two variables x and y, we will briefly deal with the lipschitz continuity of f with respect to the second argument y. So, definition 1 x y be a function which is defined on D which is a subset of R 2 x y plane and is mapping to R be a function not necessarily linear. So, could be a linear or non-linear function.  And if there exist a constant alpha of satisfying this condition you take the least of all such alphas and we call that alphas lipschitz constant. So, alpha is a lipschitz constant constant of f with respect to the argument y. Now, as in the single variable case if D is the all space R 2, if D is the entire space R 2, then we say that f is globally lipschitz continuous globally lipschitz with respect to y otherwise locally lipschitz. For existence and uniqueness for uniqueness result when a local lipschitz continuity is sufficient. Now, let us see an example say 1. So, consider a function f x y which is given by x plus 3 y where x and y they are on the ender x y is on the ender R 2. So, let us check the lipschitz continuity of f. So, f of x y 1 with respect to y f x comma y 2 which is x plus 3 y 1 minus x plus 3 y 2. So, which is equal to 3 y 1 minus 3 y 2 3 times y 1 minus y 2. Therefore, modulus of x y 1 minus f x y 2 is equal to 3 times y 1 minus y 2 for all x y 1 and x y 2 in R 2. So, this shows that f is lipschitz with a lipschitz constant 3. So, therefore, this function f given by f is equal to x plus 3 y is lipschitz with constant lipschitz constant alpha is equal to 3 and this lipschitz continuity is global because it is true for all points x y 1 and x y 2. So, therefore, it is a globally lipschitz with respect to y. Now, consider another example. So, consider the function of two variables x and y given by x square plus y square. So, this two variable function. So, let us check the lipschitz continuity. So, f of x y 1 the first point and f of x y 2 the second point these two points are arbitrary points in the x y plane that is in R 2 which is equal to x square plus y 1 square minus x square plus y 2 square. So, which is equal to y 1 square minus y 2 square which is expanded as y 1 plus y 2 into y 1 minus y 2. So, therefore, f of x y 1 minus f of x y 2 is equal to if is less than or equal to y 1 plus y 2 if we can bound times y 1 minus y 2. So, we know that this quantity y 1 plus y 2 as long as these points are arbitrary varying in the all R 2 is not bounded for all x y 1 and x y 2. Of course, if a y is bounded the y coordinate is bounded then this quantities can be bound by a constant. So, for example, if you take an infinite strip this is x axis and this is y axis if I take I vary y between say minus b and b minus b and b and if I take this infinite strip. So, if I call this as d. So, d is set of all x y in R 2 such that x is varying from minus infinity plus infinity and y is varying from minus b to plus b. So, on this t the given function says y 1 plus y 2 is bounded by 2 b. So, now y 1 plus y 2 is less than or equal to 2 b on d. So, therefore, we conclude that this function the function given by f x is equal to x square plus y square is Lipschitz continuous. If Lipschitz with respect to y with the constant the Lipschitz constant alpha is equal to 2 b. So, a function of 2 variables x and y and we have verified the Lipschitz continuity and this Lipschitz continuity is local. So, this is Lipschitz continuous and this function is Lipschitz and the Lipschitz continuity is local. So, this is locally Lipschitz with respect to y and that is on the domain we just defined d. So, on the domain defined by this set of 4 x y such that x is varying from minus infinity plus infinity and b is varying from minus b to plus b is an infinite strip parallel to x axis and we now see a function which is not Lipschitz. So, example of a non-Lipschitz function. So, example 3. So, consider a function f of x y a function of 2 variables which is given by x into square root of y. So, x into square root of y and suppose that this is defined on a domain where x varies from 0 to 1 and y varies from 0 to 1. So, the domain you are looking for domain is set of 4 x y in R 2 such that x is varying from 0 to 1 and y is also varying from 0 to 1. So, this is your domain. Now, let us check the Lipschitz continuity of this function on this domain.  Now, we are looking for a condition like this f of x y 1 minus f of x y root value of this one is less than or equal to alpha times y 1 minus y 2 for all x y 1 in D and x y 2 also in D for all points x y 1 and x y 2 in D. We show that it is not possible for this function to have a condition like this. So, this is a question mark whether this condition is satisfied or not for any arbitrary point x y 1 and x y 2. Let us take two points x y 1 I am taking as 1 0 1 y arbitrary y and x y 2. Let us take that as 1 0 1 y where y is a value. So, where y varies between 0 and 1 y could be any value between 0 and 1 and x 2 y 2 is a 0 and x is 1. In both points the x coordinates are 1 1 y and 1 0. Let us compute. So, therefore, f of 1 y minus f of 1 0 this is equal to f of 1 y by definition of pure function. So, x is 1 and this is square root of y minus f of 1 0. So, y coordinate is 0 this is 0. So, this is equal to square root of y and y is positive. So, this I write as y is 1 by square root of y times this is. So, times y minus 0. So, if we can bound this quantity by a constant finite number alpha then it satisfies Lipschitz condition for this point. And we know that as y is approaching to 0 from right side of course, the quantity 1 y square root of y it goes to infinity showing that there does not exist an alpha satisfying a finite number alpha positive satisfying the condition if I call this condition as star satisfying star. So, as y approaches to 0 as this is x axis and this is y axis as y approaches to 0 then this quantity 1 1 upon square root of y that blows up. So, therefore, Lipschitz condition is not possible. So, the conclusion is the function f x y given by x square root of y is not Lipschitz on the given domain D. So, therefore, this function is not Lipschitz continuous and not I mean locally Lipschitz continuous on D. So, therefore, always to check Lipschitz continuity by this method may not be that very straightforward. Now, as in the case of one variable there are sufficient conditions which ensure the Lipschitz continuity of a function of two variables. So, now, I will state a theorem that ensures or guarantees the Lipschitz continuity of a function of two variables with respect to y. So, theorem says sufficient condition to guarantee Lipschitz continuity f which is a function of two variable with respect to the second variable y. So, we deal with sufficient conditions. So, we state this in the form of a theorem. So, theorem 1 let D be a closed let D be a closed domain in R 2 that is a domain is a connected set an open connected set which is also closed. So, we look for a closed domain in R 2 such that the line joining the line joining any points in D lies entirely within D. So, we take a domain a closed domain such that any two points the line joining them should lie completely inside D. Suppose that the supremum suppose that f x y suppose that f x y is differentiable is differentiable with respect to y the supremum of the partial derivative del f by del y the supremum of the absolute value of the partial derivative of f with respect to y where x and y lies in the domain D the supremum is attained and which is equal to alpha is a finite number. If the partial derivatives are bounded in this sense then the conclusion of the theorem is then f of x y which is from of course, from D to R is Lipschitz continuous with respect to the second argument with respect to y on the domain D with the Lipschitz constant alpha. So, the sufficient condition that guarantees the Lipschitz continuity of a function f is that. So, function f x y if f is differentiable with respect to the second argument y and if the partial derivatives with respect to y is bounded or supremum of the absolute value of the partial derivative is a finite number in the domain then the function f itself is Lipschitz with respect to y. The proof is very simple I will just give the proof, the proof is just by using the mean value theorem. So, let x 1, x y 1 and x y 2 to be 2 points in D that x y 1, x y 2 be 2 points in D. Now by Lagrange know mean value theorem by the mean value theorem by the mean value theorem we have there exist a number psi between y 1 and y 2 such that f of x y 1 minus f of x y 2 is equal to y 1 minus y 2 times del f by del y at the point x psi. So, this psi is a point between y 1 and y 2 that is guaranteed that is assured because we assume that in the domain D any the line joining any 2 points that lies entirely inside. So, therefore, psi is a point between y 1 and y 2 which is totally inside the domain D. Now take the absolute value.  And by hypothesis this is bounded by this is alpha. So, this is less than or equal to alpha times y 1 minus y 2 for all x y 1 and x y 2 in D. So, proving that f x y is elliptics with respect to y with elliptics constant alpha. So, therefore, if a function is differentiable it is easy to check the elliptics continuity if you can find the bound for a partial derivative with respect to y. So, let us take the example a similar example which we considered. So, let f of x y is equal to x plus y square where x varies from minus infinity to plus infinity and y is bounded by b. So, absolute value of y is less than or equal to b. So, obviously del f by del y the partial derivative of f with respect to y is 2 y and del f by del y is equal to 2 y is equal to 2 times y and y is bounded by b. So, therefore, this is less than or equal to 2 times b. So, this implies that f of x y given by x plus y square is elliptics on if we say this is a domain. If domain D is given by this on the domain D with alpha is equal to 2 b and at this junction we know that the conditions in the theorem is not a necessary condition to for a elliptics continuity. It is just a sufficient condition. If the partial derivatives are bounded, then the function is elliptics continuous. There is a strong sufficient condition, but there are functions which are elliptics continuous, but at the same time not satisfying the hypothesis of the above theorem. So, we give a counter example. So, consider a function f of x y is given by x into absolute value of y, where the domain is which is defined on a domain where x y such that mod of x is less than or equal to a and y is between minus infinity plus infinity. So, also an infinite strip where y varies. So, from minus infinity to plus infinity x is bounded between minus a to a. So, this is a domain. So, if you look check for elliptics continuity f of x y 1 minus f of x y 2, where x y 1 and x y 2 are two points in the domain which is equal to x absolute value of y 1 minus x absolute value of y 2 and if you take the absolute value of this. So, this is less than or equal to mod of x into absolute value of y 1 minus y 2 and as x is bounded by a. So, this is a times absolute value of y 1 minus y 2. So, this shows that the function f given by x into mod y is elliptics with elliptics constant alpha is equal to a. However, this function does not have a partial derivative with respect to y as it is not differentiable with respect to y at 0. So, therefore, the conditions in the theorem is just necessary just a sufficient. So, the conclusion the condition in the theorem is just sufficient, but not necessary to guarantee elliptics continuity of f with respect to y. So, therefore, a given differential equation we can check the continuity of f with respect to x and y and also check the elliptics continuity of f with respect to y to address the question of existence, uniqueness and the continuous dependence of the solution with respect to the initial condition and also note that elliptics continuity is a stronger notion than continuity. Any elliptics continuous function is continuous, but less than the differentiability. For proving the uniqueness result, we employ a very important lemma which is known as Gronwald's lemma. So, this will be invoked to prove the uniqueness of solution of an initial value problem. So, let me state the Gronwald's lemma. Suppose that f x and g x continuous real valued functions with a condition that f of x is greater than or equal to 0 and g of x is also greater than or equal to 0 on an interval call it a b. So, if f x and g x are two continuous real valued functions both non negative and defined on an interval a b, then if we have an inequality that is f x is less than or equal to some constant c plus k times integral a to x g s f s d s, where c and k are non negative constants. Then the conclusion is f of x is less than or equal to c times exponential integral a to x g s d s. So, this inequality is known as a Gronwald's inequality.  In the first inequality f x is there on both sides left hand side and the right hand side and the conclusion is f x can if this is the case, then f x can be bounded by a function which is independent of f. The proof of this inequality is, so what we have is we have f x is less than or equal to c plus k times integral a to x g s f s d s, this we have. And if I take the arches and denote this by g x, so let g x is equal to c plus k integral a to x g s f s d s. So, this implies that, so thus what we have is f of x is less than or equal to g x by definition. It is a hypothesis because g x is your arches, so f of x is less than or equal to g x. And also g of a, if you evaluate g at a integral a to a which is a 0 which is just c. And if you differentiate g, g prime x is equal to if you use Leibniz formula and differentiate this integral, so first part is 0, then k times, this is k times g x f x. So, therefore, g prime x is, so therefore, we get g prime x is equal to k g x f x. And this f x is less than or equal to g x, so this implies that this is less than or equal to k times g x capital G x. In other words, what we have is g prime x is less than or equal to k small g x into capital G x. And if you divide this by g x, so g prime x divided by g x is less than or equal to k small g x. Now, integrating this, integrating over the interval a x, we have that integral of g prime x by which is g prime is called g s by g of s d s integral a to x is less than or equal to integral a to x k times g of s d s by using the integral of derivative by the function which is nothing but the logarithm ln of g s and evaluated at these two points a and x is less than or equal to integral of a to x k g s d s. So, since g of s at a is c, this is ln of g x divided by c less than or equal to integral a to x k g s d s. And taking exponential on both sides, we get g x is less than or equal to c times e to the power integral a to x k g s d s. And from our hypothesis, we know that f x is less than or equal to, we know that f x is less than or equal to g x. So, therefore, f x is, so this implies f x is less than or equal to c times exponential integral a to x k g s d s. So, this proves a ground walls inequality. And as a remark, in the ground walls inequality, I can say as a corollary, see as a corollary in the ground walls inequality, if c is equal to 0 in ground walls inequality, then f of x is less than or equal to k times integral a to x g s f s is d s. This implies that f of x is equal to 0. So, that proof follows very easy, easily because if we take for every epsilon, we take an epsilon greater or every epsilon greater than 0, the ground walls inequality holds.  So, that makes that f x to be 0, since f x is non-negative. So, this result we will be using in proving the uniqueness result, the ground walls inequality. Now, we have built up necessary tools to prove the uniqueness of an initial value problem, if the function f is slipschitz continuous with respect to y. So, that the uniqueness will be proved in the next theorem. So, therefore, two things we have seen that one is, if the function is continuous with respect to x and y, then there exists a solution to the initial value problem. If the function is slipschitz with respect to y, then the solution is unique and the continuous dependence will be shown later. We will see the proof of this in the subsequent lectures.