Can you tell me a little bit about your research into the paranormal? Well, I started my working life many years ago as a magician and so lots of my research looks at how people kid themselves that they are looking at something paranormal when actually it has a normal explanation because that's what magicians do all the time.  So I guess I use that background to springboard into looking into paranormal claims. Okay, so what kind of research do you do into the paranormal specifically? I guess our research falls into three main categories. We look at people claiming extreme and extraordinary abilities such as mediums and psychics. We look at lab-based experiments into telepathy and the existence of precognition being able to predict the future and we look at belief, how the beliefs you hold between your ears impact on how you view the world, process information and so on. Do you think belief in the paranormal is prevalent today? I'm not certain that belief in the paranormal has changed very much actually over the last 100 years or so. I mean, exactly what people believe in, this belief in, has changed but the levels tend to stick around a third to a half. So whatever survey you look at in the western world for the most part it's about a third or a half believing ghost, believe in ESP, believe in precognition. Now that does wax and wane a bit, so if there's a very successful TV show about UFOs then suddenly belief in UFOs goes up and we will drop away. Or if vampires are all over the news, vampires go up and suddenly people don't like psychics so much. So the exact content varies but you're looking about a third or a half of the population. So what are we talking here when we say belief in the paranormal? Psychics talking to the dead, what are some specific examples that you've dealt with? Yeah, so I've looked at mediums who claim to talk to the dead. Psychics who will tell you something about yourself that they allegedly picked up through their amazing abilities and sometimes predict the future and that can take many forms. It might be a tarot reader, it might be a palmist, it might be somebody looking at the tea leaves or a crystal ball. Very rarely you will get people who claim psychokinesis, mind over matter. They will focus on a spoon for example and it will start to bend or something like that. All those things would come under the remit of extraordinary abilities. I've seen some pretty convincing examples of psychic ability so a psychic might claim that something will happen in the future and it seems very detailed and specific and then the person who's being read it turns out to be true for them. What's your response to that? I think when you go to a psychic or a medium there are several psychological mechanisms at play. One is what's called Barnum statements, these very general statements that are true of everyone but we think they're just true of us. The notion that you look at someone's palm and say you've got a lot of untapped creative potential. We all like to go, oh yes, my goodness, they're terribly insightful. They're just true of everyone. Some of them are double headers so you're the sort of person that enjoys going to parties but also you enjoy being alone with a book and of course that covers both extraverse and introverts. Other times there's a lot of predictions being thrown out and then what happens is that if the prediction comes true the person remembers the reading and forgets all of the other predictions which didn't come true, which is a kind of spread betting if you like. Sometimes there's self-fulfilling prophecy. You say to somebody, oh my goodness, you're applying for some sort of new job and they go, yes, oh it's going to go really well. Well now they're extra confident and they go into the interview and so the prediction creates the future. So all of these different mechanisms are at play. To me what's interesting is it doesn't look like that. It looks like you go in, this person tells you all about yourself, predicts something about the future, comes true, isn't that incredible? Actually it's quite complicated. There isn't one psychology there. There are several psychological mechanisms. Do you think it's as simple as people forgetting about the misses, about the things that didn't come true or maybe do they regard those misses as sort of near hits? I think some of it is the sharpening up of quite a general prediction.  It's going to involve two or three other people. Well what does that mean? Is that a job offer? Is it something that happens when you go out one night? Is it something in your personal life? And then when something does happen that seems to vaguely match that, well there's a sharpening up of the prediction. Oh the psyche told me this was going to happen. They said I was going to get a new job. Well that's not what they actually said. And the easiest way of countering that is simply to record the reading. Go along with the tape recorder, make a recording of it and then when you look back you might be surprised A how many predictions there are in there and B that some of them are a lot vaguer than you remember.  But you mentioned that there are a lot of psychological mechanisms behind there. Do you think it's true that psychological mechanisms are a more powerful way to explain this stuff than say motivations and personality? I think the notion that people who believe in this stuff are stupid simply isn't true. There's been some research looking at IQ which is if you like a measure of intelligence and a belief in the paranormal there's not much of a relationship there. There might be a small one but it's not particularly striking. I think what's happening is that a lot of people want to believe in this stuff. Why else would you go to a psychic? You are probably looking for some sort of guidance and so I always say it's a little bit like going to a doctor if you didn't feel very well and the doctor says well what are the symptoms? You say well you're the expert, you tell me. It would be a ridiculous thing to say the two of you are there to work on the problem together and I think that's the attitude of most people going to a psychic. I have a problem, we are here to work on it together and so all of those biases flow in as you try and make sense of the situation. And there is some research suggesting that if people are having a tough time in their lives if they're facing uncertainty or as a child they face a lot of uncertainty and upset then that tends to bias them towards believing in the paranormal thinking there is a magical solution to their problems. So the people that are going along to a psychic or a medium can be quite psychologically vulnerable and of course one of the issues here is whether going along to the psychic or medium helps get better off in a more mainstream counselling scenario. Can we work through a specific example, say a psychic? Do you have any examples of how they might be engaging in some of the psychological mechanisms you mentioned before? I think most psychics are sincere in their beliefs, they have these abilities and actually aren't doing that much harm to be honest. I think they are pretty much like good counsellors in some ways. You have got a minority there that are very exploitative and so that's often flagged up if they'll talk about curses that if someone's life is not going at all well in several different areas and they go along to a psychic and they say, well, you're cursed. That's a very simple explanation. It's the reason why things are going wrong in your personal life and your professional life and everywhere else as well. You have a curse and what you mustn't do is go and tell your family about that because they're probably the people that put the curse on. Now, doing that, you've instantly taken out social support for that person and then the next thing is to get rid of the curse to take it away, that's going to require some money. As they pay the money and then they learn, behold, the curse is more powerful than the psychic thought, it's going to require even more money. Now, there you've clearly got into a very exploitative negative situation and I think that's a psychic understanding the psychology and the power here and using it entirely for their own benefit. What would you say to somebody who has a strong belief in the paranormal? What do you think might convince them to sort of change their opinion or their mind? What is a psychologist? I don't think it's up to me to try and change anyone's mind about something like the paranormal. I would say to both skeptics and believers, try and base your thoughts and your beliefs on the evidence. I mean, that's what you do in many different areas of your life. You wouldn't go along to buy a used or a second hand car and you go, I know, I'll trust my intuition. If you didn't understand about cars, you'd take somebody with you that did because this is an area where you need evidence. And I would say, if you're going along to a psychic or a medium, understand the tricks of the trade, be an informed client and if you see them being used, get out of there. So it's not up to me to change anyone's belief. I just think I would push people on both ends of the spectrum. I would say to skeptics, you know, know the evidence for the paranormal before you start saying this stuff isn't true because you might be surprised at some of the data that's sitting in there to both ends of the spectrum, just be a little bit more evidence-based. This course is about the science of everyday thinking. What advice would you give to people who want to think better and do better in their everyday lives? I think psychology can go some of the way to helping people realise that if they change the way they look at the world, then they might be a little bit more, you know, happier or more productive. So I would say that it might help you in that way, but to be honest, I think actually what helps you more is common sense and the problem is that common sense isn't very common to use the old phrase and so lots of the time people cling to their hopes and their wishes and their dreams and they think that without putting much effort in, these things will somehow come true. That's often underlying a lot of actually belief in the paranormal and a lot of the self-help literature as well. And if psychology tells us anything, it's for the most part success is associated with hard work. And so in terms of everyday thinking, I would say, you know, you've got to put the time in. There's no shortcuts here. Another person we've spoken to is Susan Blackmore and she said she had an out-of-body experience that changed her life. What do you think about that? Well, I've read quite a lot about Susan's experience and spoken to her a little bit about it. I'm sure she had the experience and of course here we should differentiate between the experience and the interpretation of it that there is no doubt that she thought she was floating out of her body. The interpretation issue is, well, was that paranormal, did her soul, whatever that is, actually leave her body or was it essentially an illusion? And I think soon now, and I certainly would argue, that what you're looking at with out-of-body experiences is a kind of illusion, that your brain is creating this idea that somehow you are somewhere that your body isn't. And we now know from work with virtual reality that that's actually relatively straightforward to create minor versions of that illusion. So with OBEs with out-of-body experiences, I would argue we understand quite a lot about the psychology of it in part because we can produce the phenomenon on a fairly regular basis. Going back to some of the claims of clairvoyance and mediums and people that, suppose they can speak to the dead, can you tell me about some of the harms that might occur in those cases? I guess the two obvious issues with psychics and mediums, we take mediums first, is bereavement, that when people are bereaved, they lose a close friend, loved one, clearly they're going to go through the grieving process, often feel very isolated from others. Now, good psychology is about moving them from that place into somewhere where they feel better and a little bit more integrated. And the question is, does going to a medium help with that process? And the answer is, I don't think we know for certain. Sometimes, if you've lost someone very suddenly, the idea of you can just pass on one last message to them, something you didn't say when they're alive, well, maybe that does make you feel better. If you become reliant on the medium and essentially living your life as if that person is still around in your life, that's probably not so good. So there's probably fine-grainness to whether going to a medium is helpful or not. In some ways, it's the same with psychic, that when people struggle in lives, as everyone does at some point, you want to be given the tools to solve the problems you have and the problems that will come up in the future. That's what good counseling is about. Psychics aren't about that. They're about, no, no, no, trust me, you need to do this. It's not about tools, it's just about advice. And so the worry is you become reliant on them.  And that doesn't underpin good counseling at all. So I think those are the two main concerns. Do you think our belief in paranormal phenomena is that the basic psychological processes are operating in other areas of our lives? Yeah, I think believing in the paranormal is that the price you pay for being so successful the rest of the time. So most of the time when someone's talking to us and they talk about what they're going to do that evening or whatever, it's pretty vague. And we sharpen up those comments to make sense of them. And that's what's happening when you go to a psychic. The difference is they can't actually predict the future. So the fact that we are so good at communicating with one another that we can infer what somebody means even though the words aren't there means that we're wonderful interpersonally and it's also the price you pay then to go along to a psychic and trip yourself up thinking they can actually predict the future. Have you found in your area of research that you've become open-minded or closed-minded? For many years, I love the idea first of all of being a skeptic because everyone's a skeptic. You meet believers and they say, I used to be a skeptic and then this happened to me.  So a lot of what's happening here is discourse. In terms of how I describe myself I've always been skeptical. Magicians tend to be skeptical. It's not DNA as it were, not literally. That would be odd. So we tend to be a skeptical bunch. I think I'd started off as an open-minded skeptic in the sense of let's look at the evidence and see what's out there. I think after 15 years of doing this I'm now a closed-minded skeptic and I think, you know what, there's probably nothing out there. It's probably not true because I've never found evidence of it. But that's not a position I'm proud of or that I would urge other people to adopt. I think you should be open-minded. That's the essence of good science. But if after a while there really isn't any evidence there then maybe you should close your mind up a little bit. Can you tell me about the nature of superstitious belief? Why do you suppose it is that we all believe some pretty strange things? Well, superstition is fascinating in part because it's so widespread. So although only a third half of people believe in a psychic or a medium, almost 90-95% of people would touch wood, cross their fingers, whatever it is. So in that sense we're all irrational. Let us not believe that we're rational creatures. Why do we go for it? Well, I suspect because we're told from a very young age that there might be something to it. Otherwise you might get bad luck and that's a real problem and it only takes a few seconds just to touch wood or whatever. If it was a very elaborate ritual I suspect it wouldn't catch on quite so quickly because you have to do three forward rolls and a star jump every single time you say something like, I hope that goes well, then people wouldn't be quite as superstitious. So part of it is it costs very little and if it is true, the benefits are enormous. The other thing is that we're often are one-trial learners. So if we do something like we wear our lucky shirt and we go along to a job interview and it goes wonderfully, then we think, wow, this somehow, is somehow linked to me doing well and I'll wear it again next time in exactly the same way that sports people will lace up their shoes in a certain way because when they did that once, suddenly it was a great performance. So we are naturally good at linking things like that which leads us to be superstitious particularly under conditions of uncertainty and of course the most superstitious groups are sports people who have to perform in a certain window of time, which is exactly the same. So it's uncertainty that drives that belief. It sounds like that phenomenon of superstitious belief might be related to another thing that you talk about in the course which is seeing patterns in noise some people call it pareidolia. Can you tell me a little bit about that?  This one looks a bit worried and this garage door looks terribly happy or whatever it is and it's because we are good at finding those patterns and again the paranormal seeing the face that isn't there is the price we pay for being so good at seeing it every time it is there. So if you look at a group of 100 people it's amazing what your brain is doing. You have no problem with picking out 100 faces and probably knowing how most of them feel is effortless and what's happened is that we've evolved to see a few faces that aren't there rather than miss one of those 100 because it really matters to us with social creatures essentially so in that sense we should celebrate the illusion. What do you mean by the faces aren't there?  How can you say to someone that sees or has the experience of seeing a face that the face isn't there? Well if it's, I don't know, a snow covered tree and someone says there's a face there you say well you go and have a chat with it and see how that goes or do you want to ask out on a date because that's going to be an interesting evening of your life in that sense there is no face there and I guess that's what I'm referring to as a ground truth because they might say well it looks like a face and you go well yes fine but that's not the argument here there's not a face in the tree but being so silly that's my advice. Are there other paranormal beliefs that we might pick up or see signal where there is actually only noise? I think one of the most pernicious paranormal phenomena actually is people claiming to be god men and this happens in India in particular where people will claim to be essentially a god or at least a conduit for god now because that's quite an extreme belief they have trouble convincing people that that's the case and so often they will fake some kind of paranormal phenomena so the most prevalent one is the production of what's called Vibhuti which is a fine ash that's used in Hindu worship where they make a kind of sweeping motion and then produce this from the fingertips and I spent a couple of years actually investigating some of these people and all I could see with individuals that I investigated was just evidence of cheating that there's ways of concealing a pellet of that powder on the hand and then when you make the sweeping motion you simply break up the pellet now the reason why that's a particularly dangerous magic trick essentially is that isn't just about convincing people that you're god on earth that comes with a whole spiritual belief system and suddenly you have power over large numbers of people so you have to remember that there is a very large social dimension to this the individuals are not just faking psychic ability for fun they're doing it for a reason and often it's to benefit themselves are there any tricks that we can use when we're trying to evaluate claims so whether it be claims to the paranormal or health claims or anything are the tricks that we can use based on what we know from evidence from cognitive science to help us make the right decisions I don't know there's any easy way I mean one is that if it appears to be amazing if it appears to be extraordinary and not only paranormal but if the offer that a sales person is putting forward appears to be incredible it's probably not true is one issue the other issue is that often we are not the experts we think we are we like to think that we could spot a con person or whatever but the reason why those con people are still out there working is that we can't do that it's in the same way as we think we're really good at lie detection and actually we're terrible at telling what another person is lying so I would say you know in each of these domains consult the experts consult individuals who do know about it particularly if the person that you're talking to wants your money if they want your money go and talk to somebody else before you hand over your money I think that's probably the most straightforward piece of advice my name is Richard I think about the paranormal


Staying on the ice, girls hockey, Brainer little falls, hosting Fergus Falls. And the Warriors got ahead early tonight with seven minutes. The first period, Abby Dieland scores the first goal to put Brainer to head one nothing moments later. She's followed by Abby Polkamp, who easily finds the back of the net. Taking to the second period, now Brainer up two nothing, only a couple minutes in it. Junior, Gray Schulte floats the puck in on a long shot. As Brainer takes a three nothing lead over Fergus Falls, and they roll 10 to one. If you've enjoyed this segment of Lakeland News, please consider making a tax deductible contribution to Lakeland Public Television.


f a person running through a very rough road there just different examples there just like if you have a kid there you're trying to teach them something there you want to show them the different variations that are all mapped to the same thing there that's why you need a proper training data that covers a range otherwise the machine will not know all these other variations once you have all that data there you need to give it to the machine learning algorithms there it will go take all that thing there and it will go right through itself build its own network build up the internal models coefficients depending on which variation of machine learning you use there and then after you have all that there you need to somehow take the numbers and map it back to your problem there it goes back to your model there remember machines they work with numbers not actual text text is for human so you need to do some mapping after you're done with all this stuff there and I'll show you in more detail later on machine learning there are all sorts of variations out there but there's just two large categories that's generally in use there there's a concept of a neural network this is very similar to what would be the neurons in a brain a biological it's model after the same idea there there are many different variants out there as I mentioned in the previous slide back with the vocabulary depending on how you arrange the neurons there you get different types of neural networks there and that could be very confusing if you're just first time jumping in looking at the stuff there another thing to know is that neural networks are just multiplication additions it's pretty straightforward you just do a lot of multiplication additions there the other common type of machine learning is support vector machines there this one basically says you have data there another common example I have a diagram later on there would be you have two sorts of inputs there and you just somehow you figure out what's the best way to draw a line to separate two regions there and then when you have new data you figure out where sits in that whole graph and that's your output there it's a very simple concept it doesn't require a lot of CPU to do the hardest thing in both of these cases is actually the training part where you have to teach a machine neural networks there now let's look into a little bit more detail about that there a neural network is just an array of neurons neurons are very simple ideas I keep pointing out similar to what's in a biological brain and depending on how the different neurons are connected there you have different types of neural network like you have a deep neural network there you would have an array of the neurons there that would connect to another one there mostly common neural networks are fully connected so sometimes if you want to build a specialized type of it you may not want to have connectivity by fully connected and off pictures I think a next slide or almost slide later on where the neurons there you may not want to have them all connected if you have too many of those there so that's what would drive which particular type of neural network you have there and neuron all does this it just multiplies whatever input is by a particular weight that's usually a number less than one and that's the neuron when you are connected with another neuron there you add up all the outputs of the free of all the neurons there and that's your output from there so it's very simple the simplest neural network that you could build would be something that you would have an input layer you have an inside layer that has all the different weights there and then you have an output layer there that will give you your output or your predictions there it's neural networks there trying to decide if I should okay yeah it's worthwhile talking about this given I'm just worried about time right now the neural networks there if you have the inputs of a neural network you could apply other operations to it it's not just simply machine learning by itself there there's different things you could do you could let's say convert your data instead of looking at images where you have a lot of pixels these days there you have a phone camera you talk about 13 pixels 30 million pixels 20 million pixels there each pixel in turn has three values RGB that's a lot of data to feed in there so one way of handling all that there is you apply convolution convolution if you're not familiar with that it's a filter that's all it is in the case of images what a convolution would do is it would try to identify features in there be it a diagonal line a vertical line a particular curve there so it tries to break up your image into so in a convolution neural network what you might do at first thing you might do is apply a filter there to just reduce it down to features there and there's a way of combining all the different convolutions to reduce that say 20 million pixel picture down to something much smaller much more manageable once you have reduced it down enough times there you could apply that as an input to a neural network and the neural network would figure out oh this particular combination of features that's what it must be so that makes it a lot more manageable the problem with doing this is training it training it you need to figure out what filters need to generate and that takes a lot of computing power that's why you may have seen all these references oh we're training it we need to have this so-and-so GPU there or we need a server array that's why that's the case okay the neurons themselves there one important thing is you have all these neurons connecting to each other you may potentially chain them the problem with chaining them and you do a variation on them is they may potentially explode let's say you feed in something there and you wind up a value that's greater than one you multiply by something else there and do it too many times you get much much larger data well there's a concept of a mapping function there usually is a non-linear function there what it does is that it want it may potentially exaggerate some of the particular outputs there you may not want this neural network to be just slowly linearly changing things you might want to just suddenly connect to a particular thing there or you may want to limit the range let's say you want to limit the range from minus one to plus one so you notice less than one that will guarantee that you chain next one to it the whole network wouldn't explode and there's different functions that you could do that there there's a common one called sigmore which is essentially a hyperbolic tangent that guarantees that your output would be between minus one and one there another one that's common is what I call ReLU it's essentially a dial all it says is if your input to this thing is anything below zero below it's mapped to zero anything greater than one greater than zero it'll be mapped to exactly a value there and then anything greater than one itself will be mapped to one so it has that clamping effect and it prevents your whole network from exploding this is the picture that I keep alluding to this is a simple neural network there you have your three layers your input that's where your values that you provide your machine is available this image is from Wikipedia so you could take a picture of it but you could also go to Wikipedia it's from there you have your input layer that's basically all that does is this takes input there and it feeds in there and then you have a hidden layer which has all the different weights that does the multiplication and your output is your output prediction there all those different lines that connect to each one those circles there that's your connectivity there all those lines means that addition so let's say in this layer with these neurons there this one multiplies each one of these guys there by a particular value that's the weight it takes that and then that's the output of this one there so it goes to this one this one and depending on how that sum of output this one this one this one this one it will give a value to this same thing here this value will be composed of the output of this one this one this one and if it's done right there this may be say a high number this might be a low number whichever is your maximum would be your predicted output let's look at the other common kind of machine learning that's a support vector machine like I said earlier basically all you're doing is taking data you're dividing your data space into different regions there and that's pretty much the whole process there this whole thing runs very well on relatively low power CPU I've seen this running on something like a Cortex M0 if you're familiar with that that's pretty much the simplest of all the current modern arm my controller CPU is out there and here's a picture of it this is another picture I borrowed from Wikipedia it's probably not the most ideal picture but it illustrates the concept there you have your data space which is composed of two inputs x1 and x2 there and you have two different types of outputs there one's represented by the circle that's open, the other one's represented by a fully filled out circle there and these lines represent potential training, potential ways of breaking up space into two different kinds of outputs there you have h1 there which doesn't really I tend to separate out all the which doesn't fully separate black and the white dots here you have h2 which does separate the black and white dots here but it's not ideal you have noticed that it's much closer to the black compared to the white ones there whereas h3 tries to keep an equal distance between those two that way if you have some data that may say land right here right here this will be classified as white there but if you have data right here if you use this one there it will be essentially incorrectly classified as one of the members of this black dot so conceptually this is very simple now those are the basics of that let's look at some software packages out there the first link that I have up there is a list of a lot of different packages that's available there so if you really don't care for see stuff that I'm talking about there you want to go with some of the python options there they probably have some offerings there so it's worth far looking through see if there's something that's more comfortable for where you have the first group is what we would call the commercial offerings there they are usually backed by a company and sometimes they're actually used internally by the company there or you may be able to actually buy a service to use those things there I personally have some concerns about using those in that category just because it's backed by a company decides to somehow stop using it is that going to be completely abandoned what's going to happen to it there is it really too specific for what they're using does it really fit what I'm using so it's really up to what you think there the first one there TensorFlow from Google that's particularly notable is that Google has been making a lot of effort to try to get people to use that one there with kits that would demonstrate TensorFlow at Target they have a little I think it's a Raspberry Pi kit there with a camera and you could do some basic image recognition on there there's I think even an onboard accelerator for machine learning on there and it all runs this stuff with TensorFlow it's common you might have heard a lot about that there but that one pretty much forces you onto the python track there and also kind of ties you to that particular package the second group there is what is open source offerings as some of them may not necessarily be commercial friendly so if you're looking at doing something for a company you need to look at the license one particular note is the SDM light there the author has particularly mentioned that he really prefers it to be used for research and well I didn't actually read the license text there that's what his preference are I think it's best to just respect that it might be a freer but if that's what the author wants let's respect that from that list there there's two things there that's relatively simple there is darknet which is specific to images there but that was incredibly simple and easy to build there so if you want to look at images there that might be a simple package it doesn't require too many libraries there it can even make use of GPU for acceleration on there but just an interest of time and as I said I'm not going to go into images here and just talk but just leave it at that the other package there is fan that's the one that I'll be using for examples and demos here it's a relatively simple package there it's all written in C and some examples there and the code could fit on one slide that's how simple it is and usually people say yeah I could do the same thing with Python well Python calls all these other objects which calls other objects there and you have to use a system it just becomes a lot more convoluted there hardware acceleration well it won't it's not particularly applicable to what I'm going to be doing with a simple stuff there for learning it's good to keep in mind that these things do exist if you want to go on further look at more difficult things especially if you want to do something with vision there the first is the Mobidius compute stick from Intel there this is an accelerator it's relatively close you are doing something that matches what they have provided as examples there it may work that's pretty much all that is GPU that's a common thing for accelerating especially on that training side a GPU if you're not that familiar with it it's basically a super computer it does a lot of parallel operations very very quickly there and that's why it's useful for this machine learning stuff there for using a GPU there's three basic approaches there if you're using NVIDIA hardware either on embedded stuff or even on desktop there you can use the CUDA NVIDIA does have an arm chip with GPU on there that I believe supports CUDA or if you're doing something else there or that's not NVIDIA's GPU there there's OpenCL that I believe that's also available even on some of the ARM devices or worst case you could always fall back to OpenGL OpenGL ES well that's specifically designed for graphical things there you could still use it for computation you just need to look at things a little bit differently in the case of OpenCL CUDA there things are pretty simple you give it data and it does this thing well in the case of using OpenGL or GL ES you need to tell it oh I have a texture a texture is a 2D array but your texture could really be your data itself there and they have something they call shaders shaders are programmable it's short snippets of code that looks a lot like C it runs on I think every single one of those pixels there that you provided there and output there is texture so if you map your problem to something like that there you could potentially use the GPU for acceleration and of course there's FPGA you could always use hardware for acceleration for this kind of thing or even some of the newer chips there like for example if you have seen some of the BeagleBorne stuff there there's a newly announced board called TI it uses onboard video accelerator we purpose to do machine learning TI has a software kit called TIDL and you could do a lot of the vision stuff using this stat okay let's look at data as I mentioned earlier I'll be focusing mainly on static data what that means is the data there doesn't really have a time element you're not looking at a time series so you're not looking at example audio having sent that there that doesn't necessarily preclude you from doing some processing involving that you may have to phrase your problem slightly differently but to keep things simple let's just break it up into different categories because you're also looking at different algorithms for handling things there like for example if you're looking at microphone, accelerator accelerometer output there you're probably going to be using other algorithm like LSTM long term short term memory where you may feed the output of the neural network back into itself as an input so that you have some sense of history there and depending on how you do the feedback you may have a long history or a short history there and there's even other variants there which may involve the history there and then images this is really a special case of spatial data there for if you want to treat things as the image that means you could do certain things like for example you could do convolution on it, you could do filtering that doesn't necessarily apply if you just have a 2D array of data there because convolution may not necessarily apply there when you do convolution you're making assumptions that there's a pixel especially to next to you or below you and so forth whereas if you just have 2D data there that doesn't necessarily imply the case there so that's one important thing to keep in mind and by filtering there I'm really referring to convolution if you're not familiar with what convolution does I mentioned earlier all the data that a computer deals with they're numbers that's all they are to apply any meaning there it's really up to you as a programmer designer if a human is what applies there but with the new numbers there there's a few things that you need to keep in mind there we're dealing usually with small numbers here which range from 0 to 1 such as you multiply things unless you want things to explode there you're dealing with small constants there represented by a computer that could have several issues one is 0 multiplied by anything that's going to be 0 so if you somehow get your number you multiply by a small thing and you're stuck near 0 you may get rounded down or truncated at 0 which case that may not necessarily be very useful there so now describes the issue of precision you may have potentially double precision that could potentially help you get smaller numbers there but the problem with doing things like double precision or even simple version point is you need floating point hardware to do a lot of multiplication that implies performance issues there so one way that for embedded devices people work around that is to use a concept of a fixed point all that is is instead of using let's say a number 8 bit number normally 8 bit would go from 0 to 255 you scale it so instead of going from 0 to 55 you divide that by a fixed number let's say you divide it by a factor of 2 so now all of a sudden 0 to 128 each number has granularity of 0.5 by adjusting that you could get different level of granularity by doing this by just doing this simple scaling you could use normal integer multiplication there and just remember to scale later so that removes the requirement to have a lot of processing power it does not require you to have a floating point unit another thing to keep in mind is the computer is just a number you may be doing a physical experiment you might be measuring an accelerometer accelerometer to measure in G's which may go from 0 to some hopefully small number or it may measure in meters per second square which may be somewhere like 0 to some much larger number the ranges there may not be convenient for computers if you're looking at simple binary numbers scaling it you may go from say 0 to 128 but you're measuring G's that you're only using a small portion of it so even without dealing with a six point issues there it may be useful to just do some scaling so a unit doesn't really matter when you're feeding things into a computer there and then the way you map all these features and numbers there that could also impact your training time if you have really large numbers there you wind up hitting the activation function and then things get clamped there it will have a much harder time finding out appropriate weights for that there the range that you provide there could make a big difference in the overall model you could have things that work but it could take forever to train which is not necessarily very useful and similarly for the mapping of numbers there you have the input obviously you have some number sensors there a lot of times a fixed thing is not going to be a number you're going to have to map that number or translate that number into something that's appropriate for a problem if you're doing a simple identification it may be translating that into a name another thing that's important to know is that with machine learning generally your inputs there you're dealing with an array of numbers you're not dealing with a single number so let's say you have 18 inputs like what I'll be using for my for my spectrometer there that's an array there so a lot of times there you're dealing with vectors and you're doing vector multiplication there if you have any kind of hardware or anything that makes speed it up that will help it a lot there just as a side note there the name TensorFlow the package from Google what tensors are basically arrays of numbers there that's kind of where it came from processing this is a method of where you may somehow massage your data a little bit that may help things there like I said earlier there I'm going to focus mainly on static data there but you kind of still have static data at the same time have some kind of time dependent input let's say for example you process a microphone input by looking at derivatives of the signal there integrals a signal there's different processing that you could do you may potentially simplify your training if you just eliminate all the noise you want to do some focus on particular things there you could apply a filter ahead of the input data there or be looking at where things are you're doing some kind of measurement identification there for training purposes it actually matters depending on your data if it's a polar input where you have like say a degree and then distance from a center point there your origin versus a certain more common X and Y rectangular thing there it comes down to what does your data which one produces a more obvious pattern there so that's something that it's not always obvious that you will just know offhand everything that I have read so far such as that it comes down to experimentation sometimes some things will come off faster sometimes it doesn't there similarly with the space converge with I would call it space conversion but that's a poor choice of words just because I'll be confusing with that domain what kind of domain conversion is that you could be looking at your data in time space or you could be looking at in say frequency space or there's all sorts of other transforms there the most common one would be like a Fourier transform you could also potentially apply like a Poisson transform depending on your type of data you could look at different spaces there and that could help with training there and it could also help with the potential identification process later on another thing is if you have a lot of data there let's say you have some really high sample rate coming in there you could play games like average off the inputs there combine multiple samples together there what that's really doing a lot of time is you're basically when you average samples you're applying a low pass filter low pass filter that's how reduce the amount of noise in your data there you could also do things like just simply instead of combining discrete samples let's say you have 10 samples coming in instead of averaging every 2 you could have a rolling average there so whereas every 3 you do a every 3 you do an average and then you drop the first one and add another one there so you have a rolling average there's different games that you play there and that could potentially help you improve your data itself there if there's even your pattern that involves figuring out a maximum minimum there it may be useful to feed more than just your actual sample data in there you may want to feed the first derivative of the data second derivative of the data there it really comes down to your problem because machine learning is not magic if it helps you as a person to actually figure out what's going on there that particular data may be helpful to find out for machine learning if machine learning all students looking for patterns if you have some way of processing data so that the pattern is more obvious and that could reduce your computational load both on the training side and potentially on the prediction side the first point is very important machine learning it's not magic if you feed a garbage your training data is no good there or you just don't give it enough data there you're just going to get garbage out it's not going to be able to predict things from nothing one way I'm looking at this is if you have a problem an expert let's say that's another country if you give it the same data that you would give the machine over a phone line and that expert cannot give you a reasonable answer or a meaningful answer based on where you have that you probably don't have enough data that's probably the simplest way to look at this another thing that may not be obvious that I ran across in many references your training data there's apparently a magic sweet point there if you have too much training data the risk there you have is that the patterns that machine will find will match things so precisely it will only predict things in your training data set there on your hand you don't give it enough training data there the machine doesn't know what it's going to be looking at there so there's kind of a balancing point that you need to do there the other problem with having too much data is it could take too long to train now comes the more interesting part of machine learning or off the training part I would consider the interesting part there it all comes down to a very brute force process most of these algorithms and there are several different algorithms for trying to train a machine there when you train a machine especially with neural networks there all you're doing is you're trying to find weights for each one of those neurons there depending on how many neurons you have it could be a lot different weights that you need to determine there the process is essentially you start out with some random numbers you put some random coefficients into your neural networks there you run your training data through that thing there it could be just one sample depending on your particular algorithm you're using or you send all your data through there and you compare it with what it expects that's your labels as I mentioned earlier compare those things there you compute an error based on that and by using the error you could feedback and adjust those weights there and you iterate you keep iterating until your error goes below a certain particular threshold and then once you have that you're done so this is purely a brute force thing and it could take a long long time with SVM it's very similar to this thing there but it's a little bit closer to math but I'm not going to say that much more about SVM just because it gets used but it's also not the more common one that gets used because of this brute force approach there it sometimes helps to have like a giant server farm so some of the more complicated machine learning algorithms you could potentially paralyze it either over multiple CPUs you could paralyze it over different individual bits of GPU there so much earlier GPU what it does is it takes pretty much all the pixels that it has there and it runs on parallel so it's a giant parallel computer and it does a lot of multiplications there in graphics programming you may have to adjust shading based on particular coefficients that's pretty much what we're doing in machine learning so it's very similar and it runs in parallel and it's available at mostly a reasonable cost the other half of machine learning is the prediction flash inference phase there depending on what you're trying to do if you're trying to say look at a pattern in the stock market and then what's going to happen next day that we refer to as a prediction there if you're trying to look at samples there and match it up to what you had prior before we trained a machine with that would be called inference but it's basically the same thing it's the output of your machine learning there this part unlike the machine learning training side of it doesn't require as much CPU it could often be run on some simple microcontrollers there like I said you could set your run on something as small as a Cortex M0 and M4 is not unreasonable if it's not overly complicated there after all you're doing is doing multiplication additions there and the thing I covered that I kind of went out of order so I covered most of that and the output of your prediction thing generally when you have an output of prediction things it will give you an array of numbers there sometimes you might have seen some examples out there especially with the cameras they say oh this is 60% prediction that this may be a person 25% that it may be a car there even though it may obviously not be a car there these numbers are outputs of different neurons there and generally if you want to identify what something is there is when you get the output there where you have each value is probability is what it's referred to but it's not exactly a probability but I'll just use that term anyway since it seems to get confused with that anyways each value will be a probability that is a match for that particular thing there and what you want to do is you want to go to the whole array find the highest value the most probable item and then just call it that's my prediction there so that's generally your output now time to think back to embedded things look at time, okay hopefully I might have to drop off some of the bits there but feel free to interrupt any questions of it if I'm going a bit too fast or raise your hand to say something there for embedded devices that's mainly my focus there you need to think about are you going to be using floating point numbers on there a lot of embedded devices especially if you're not running Linux on there even though this is a Linux conference may not be able to handle floating point numbers that quickly you may be emulating in software that might not be ideal even with Linux there if you don't have a hardware FPU it could be payfully slow or you have it maybe your FPU only does single point position like I think on neon only does single point there if you want to have double precision you need to make sure you're using a cord that actually has the VFP unit there so you need to make sure your data really fits what you have in your processor otherwise really weird things in the performance that could happen there software licenses a lot of times when you're building an embedded device there you're probably not expecting it to be kind of ripped up and redone there even though you may be building an open source thing it might be useful things for you know you're still combining potentially several different pieces of software it's very important to know what are the licenses and if you have a library to reference another library with reference to another library they may be compatible if you're using that on a desktop but if you're using it somewhere else there that might impose additional restrictions on your device that's part of the reason why I was really trying to avoid looking at Python just because Python fits in far whatever looks easy but unless you know exactly what's pulling in there that could get you into a lot of trouble later on okay yeah I'm running short on time here okay now let's look at the thing that I was trying to build like I was just a recap earlier there I'm trying to build a device here just maybe for learning it's not really a product at all I'm trying to build a device that uses a spectrometer and it looks at a sample and it tells me is it real sugar is it fake sugar like aspartame equal any of those other things there and for hardware I'm going to use a BeagleBone just because it's a nice length computer there most of what I do at desktop is just kind of a drop in there and it interface easily with my development board for the spectrometer that I'm using there and I'm going to use desktop cpu for just training there I've tried using training on the BeagleBone stuff there the same code it works it just I stopped it after about two hours it just took too long there whereas on a laptop actually this particular laptop that I'm using for presentation I think it's an Intel i5 there it takes maybe about a minute or two to do the same training there and software package I'll be using to do this is span it's reasonably mature it's been around for a while and it's simple to build essentially you go in there it's a CMake and then just make yourself it doesn't really have any major library dependencies other than I think Algebraic library which is commonly included and then they also have versions of it which would use a fixed point map so it would be helpful if you have to do that on an embedded device and a fan is written to see if you want to still use fan there are bindings available for other languages like for example on line of found and tutorial for using fan with PHP if you like that I think there's also bindings for Python if you also like that there so you don't really have to use C it just C is easy to understand what the pieces are you don't have these hidden pieces coming in okay just to show you how simple it is for fan training this is the example that you find website there essentially what they're trying to do is in this whole example they're trying to emulate the export function you have two inputs there it's your basic gate and you have one output there and this is the code use fan for training that the first half up to about here is all decorations there the first one there just kind of gives nice names to how you want to define your network there you have a basic two inputs that represents your two inputs for the XOR you have one output that's your output for your XOR and then total number of layers you have your input layer the hidden inside layer and then the output layer that's your three and then where if I have three neurons there that's somewhat of an arbitrary number that seems to work well and for training we need to find out how accurate do we want to be this is the one I was telling you earlier where you just kind of iterate over and over again until you find that the error is acceptable in this case we set the threshold 2.01 and what's the worst case before it gives up there it will try this up to 500,000 times and every 1,000 times it'll just give me some statistical output on where it is where's the error how big it is roughly it gives me an idea that am I getting somewhere if it doesn't look like I'm getting somewhere maybe I'm doing something wrong so it's a useful thing but trade off there is that you have too much output it may want to waste a lot of time just doing output there so you probably don't want to set this to like one and to create the neural network there you pretty much just call this thing there with those values and you know all they're doing is just using nice names for it so you want to get rid of those lines put in numbers there and we want to configure the neural network to use activation number in this case we're using sigmoid for yeah we're using sigmoid for both the hidden layer and also the output layer and then we're training it on a text file there you could also give it individual samples but in this case just to making simple there we're giving it a file to read it'll run through this thing there when it's done it'll save that to output so that we'll use it later and the rest will just clean up there so incredibly simple and this is all written in C now let's look at the training data there first line just tells the fan how many samples I have and what the samples look like there the first value is a number of different samples there we're doing X4 so there's only four possible combinations each one of the samples has two inputs and each one of the samples has one output that's the one and then minus one in this case means one is true so if you have two falses you also get a false and so forth there so this is your training data there for what I'm doing I'll show you that later it's very similar it's a very simple text file and then after you train the thing you want to be able to use it this is pretty simple all you're doing is you're creating the neural network there based on the weights that you found earlier from the training there it loads that in there and then we're going to run it through we're going to set up two inputs there in this case minus one and one we run it through the network there and then we print the output and all we're doing is repeating that in this case we're just looking at raw outputs there which case it would be a number in the case of a more slightly more interesting application like what I'll be doing I'll probably be taking that number and then having a rate that maps that to a name but this is pretty simple there okay this is pretty much a black diagram of my little demo hardware that I put together there there's a 18 channel spectrometer there that's the one that measures the light it also has a little red light to reflect it off of there it all feeds into the Beagle bone and just to make things simple since the Beagle bone doesn't have a display I'm going to send it over a network and I'm going to use the standard protocol use MQTT there so I can just use like a mosquito and just dump that on the screen it makes it easier to debug and if I want to it's easier to slap a nice UI on there okay let's look at training let's actually go to a console in this case I'm doing the training on a laptop that's x861 I've tried it train before I do that I'll just show you this is pretty much the example I have earlier the biggest difference is going to be in this line there I find that it's a little bit faster if I configure to use a slightly different strategy for finding the coefficients there in the neural network there other than that this is pretty much the examples there I bumped up the number epochs there just in case I need to go through more I reduced the errors a little bit and this is pretty much the example so all it's going down is that it started with a random number there and from there it's trying to find an optimal strategy for getting to something that matches the output there the bit failure that's a number of outputs that is completely wrong from what it was expected to be the current error that's the total error for all the outputs there and it's iterating over each time it tries different combinations based on the previous pass there and one other change from the previous example I think it outputs every 1000 epochs right now I'm outputting about every 2000 epochs it doesn't take that much longer it should converge pretty soon but even for something simple like this this is done I'll show you the data set this is the data there's 18 samples in here each one of the samples has 18 readings there they represent the 18 channels of my spectrometer there and there's I have a 25 number vector output that basically tells me what kind of artificial sugar is it a Splenda is it equal and so forth there and the last thing four bit it represents is it sugar or not there's also something that I haven't actually defined so it is mapped to a false but this is my training set there's 18 entries in here so it's not overly large and yet it takes a notice amount of time and it takes much longer if you were to run it on the target itself and let's see if I can get back to this slide Libre Office wasn't behaving nicely that's the training and then running the process what I'm going to be doing is I'll be collecting data there I'll do some pre-processing which basically means I'm just scaling the data from the range that the spectrometer provides into I think a range between zero and one then feeding to a neural network and then I'm mapping the output to a name there that code I'll show you that code later let's try running this first okay so what I've done is that for I've built up a little board which adds a switch basically it's a GPIO thing that triggers the whole process and they log in there manually through that and right now I have the spectrometer sitting on a sample of a Splenda and that's the output for this particular thing since it's a demo there I purposely made it more verbose the outputs here that's actually the output for the spectrometer and this is the output for the neural network there it found that the maximum for a specific identification is 0.76 it's roughly about 76% I believe this is that aspartame which is I think what Splenda is and then is a sugar substitute for identifying all these different sugar substitutes one thing I found is if you do some research on these guys they're a very small amount of particular sugar substitute and a lot of it is filler apparently that stuff is very potent it's like 1 or 2% of it is aspartame the rest is some kind of a filler I think dextrose it seems to be a common one and that's common with pretty much all the other ones so sometimes the neural network gets confused it would misidentify aspartame but I find that it's reasonably accurate on the sugar side so let's try this again with actual sugar okay it's misbehaving right now got distributed sugar around so that the spectrometer doesn't see the tablecloth it was working earlier guys here in case you guys have flights there my session is almost over okay let's go back to the slides where did it go oh yeah another thing keep in mind if you're doing machine learning you might want to consider how are you using data where are you getting a training set from there is I don't have an answer for this and it may be something more for a lawyer to tell you it's a data let's say you find on the internet is that considered to be fair use of it or do you really need a license for it that's something to think about because Google has access to a lot of things there and are they using your data that you provided there they may have found a search engine who knows but that's something that you should keep in mind another thing is open source licensing there your training your load network in my case that little .net file there is that pretty part of the same copyright as part license that's your regular code there because a lot of times the licenses don't really apply to data after I am loading this as data there so should my potentially GPO code apply to that particular network there or is it separate that's something again think about it may be again a lawyer thing and also with machine learning things are a little bit imprecise so how do you QA these things there again it's another question to think about because normally if you do work traditional way you have thresholds there you could potentially iterate all the thresholds there and see it look at the output but since each time these things you train it you can get different weights there how do you know this is correct do you just sample a few of them and hope that it works something to think about so yeah in this time I am going to skip ahead if you want to look more into that I had plans log into the view point to show you the code there but I don't want to keep you guys here too late any questions yes yep you could potentially do that there but the problem with doing it on natural embedded devices training takes so much longer time there you have the processing power to do that there one way of potentially you could do that is do this in batches there let's say you have a connected device you could save the data there and then if it's wrong or someone tells you it's wrong there save what's wrong add it to your data set and then train it and periodically provide updates to your network there and that will improve your data but all this really comes down to how good is your training data if your training data is garbage your output is going to be garbage sorry hyper parameter training let's go to where is that right which parameter I personally manage it largely by experimentation one thing to keep in mind is like for example max epoch that is actually an upper bound on things there if it keeps failing yellow that then I start investigating if there is something wrong with the model or is it really that complicated to do that thing or maybe I don't have enough neurons there that's when it's more a flag to me to go okay there's something I need to tune there or it may just simply be it's a difficult problem so it's more of a trout error there really isn't a good thing and I did some research on this thing that most of us do say is largely trout error yes yes actually the way that everything you have come across and including that includes talking to people about this the way you manage that is actually the way you partition your data there that's why earlier I say generate partition about like 50% of your data if you randomly as your training set and the effort set if you do like a 90-10 split there it may be very specific to your training data and like what you point out earlier there I might be very specific to what I have there so there's definitely that problem there that's something to definitely watch out for it doesn't come over camera I'm actually not using a camera I'm using a development board what it has is that it has 18 channels of sensors in there it's done by filters and photo dials it connects over a virtual serial port which interfaces over the USB port that's separate this is a development board by AMS who makes that sensor I think there's another question okay there's two ways to go about that one way is that you can use a different function in fan there where you just feed a sample of the time there that's one way of training it that could potentially be very painful the other way is that you have to use that specific format and you just write the script to do that there like for example the output from my sensor it actually is a whole bunch of different format data there and I have if you want to I'll show you the script later I have a simple auth script that reads that text file converts to that format and outputs that there because in my data there I actually annotate it so I have more information in there than what fan needs but that tells me what I need to do it also has the human readable name so I can always go back and check things any other questions nothing specific well there is some of the stuff that I think Google is doing there is very can be done on FPGAs there a lot of deep learning stuff there any other questions thank you for coming hope this was somewhat useful you guys oh yeah this is a development board yeah it's a development board that's all that is I think I may have at the wrong angle where we're seeing through the wrapper yeah it's not the best spectrometer it's 18 channels but it was cheap oh this guy this is a development board by AMS they made sensors there it normally interface your PC over this but they use the AT command set so as an FPG board it's pretty much a PC plug it in the one thing I really meant is this thing to give me a switch and you mount it on the pvc yeah pvc because I don't want to get ampianized if you're looking there that thing is flat so if I hold it too close it won't get a proper view there this thing just nice cheap thing yeah that's all this and it keeps all of it this board I think was like maybe about 90 bucks from digikey there's a project there to build like a 25 dollar spectrometer we use the exact same chip set except that one that you got to cut some traces to use it in the UART mode which is what I'm using there by default comes from I2C which is a little bit more work to get it working here this guy is a development board for about 90 bucks there yeah there's a project that uses the same chips there I think like spark fund they have a version for 50 bucks but that's wired up for I2C instead of UART the chip supports both and you can cut some traces and convert it there's no reason why you can't you could potentially do that there the only problem there is now you can have a rig that gives you like probably I was a cuvette that's what the labs use it's almost like glass container with a thing that passes out like that you can put the sample in there it's just more complicated yeah yeah that's what I look at YouTube where AMS actually has a video where they have a nice little app there written that will identify three different substances that are all white but I'm just trying to replicate what they have there they wouldn't I don't think they provide the sources or any information about that particular demo probably search for the company AMS they make sensors there and the AMS spectrometer that might be good and then see if it's from the manufacturer I think it's a demo video from them yeah and then if there's some baseline that you have in your computer to characterize what sugar is supposed to look like it doesn't need that way to do is that I take measurements from different samples there and I label that sugar then I run into a training so it tries to look for it does it match that pattern so that kind of becomes a baseline then a given further sample is referred back yeah so that's the difference because traditionally you would have a baseline there how close is that maybe how far can you be off of that and still call it sugar that would probably be more traditional way with machine learning you give it a whole bunch of data there it would try to match out the figure of pattern and then when you do the prediction phase it would say which is the closest to that pattern if so that must be it you know I'm looking at this very recently that's grouping the points and they upper left these are black and these are white but like with chemical sugar like there could be a whole multiple number of different characters in all of the investigation how do you handle that? kind of multidimensional mass exactly they just have a line that divides it they have a concept called hyper plane and it gets a lot heavier when you get to multiple dimensions there then what was that fan thing that you already know how to do it there are different concepts I think you're mixing up there there is neural networks and then there's something called support vector machine that's the SVM SVM does what you just talked about with the line that divides up things there with neural networks there you don't really have that concept but that line say all you're doing is you're building up different weights for the neurons there and then they get summed up and then looking at which is the largest number that's the output so it's two different approaches to that fan does neural networks what are you looking for? I'm looking for particles in the water oh because you're basically measuring turbidity that's what for that it could be something as simple as something like a light and you measure the light output data once you've got particles and they're probably scattered and they'll impact the amount of light connectivity will imply that you're looking for conductive ions so if you have something complete and they're like very small parts of clay that might not be conductive enough for the matter I'm not sure what the threshold is going to be but you could potentially have dissolved things that are non-conductive there which would but that might be like a special corner case thank you now I'm not to create a mess any of the particles that you're showing are go about trying this on our own at home? I eventually plan to actually put most of this stuff online on my website it's more of a time-constraint thing but if you want to try a fan there there is obviously a simple example you go to the fan website there that's the most common one you could also find the same example written in PHP so that would be a very simple thing and once you get that concept things kind of just fall in place what how you wire up your sensors there that's a different topic well yeah but that would be useful for me too so you had a website? yes it's an actual research how can we find your website? there's a chicken egg problem it's on the bottom corner of my slides I guess I'll put it back up I was going to show plots of the individual sample readings but I just ran out of time actually I thought this was supposed to be from 430 to 530 that was an hour I suppose it's like an hour I thought you had extra materials that you started early on the schedule I think the time for your time came by at 4 I just counted half an hour I thought I was a little bit later in that but yeah that's the other way of going about it I have another way out of 60 instances well I'm thinking really of the popular voting in the electoral college vote and they are related 60 elections and you have popular voting in the electoral college vote and you train that and then you apply to the most recent election where there was a 3 million vote difference and just to see how I would probably do that I would think it would be easier to just simply do a statistical analysis on that you could look for a pattern there basically you're computing correlation between those two but you could also do statistical analysis you just talk about two different types of data coming in


Good day, fellow investor. I recently started with a series discussing Buffett's mindset, so we had compounding, we had the long-term patience needed to invest, and we will discuss his mistakes. However, everybody was commenting and pounding me about Apple. Nice video, however, I don't understand why Buffett keeps on buying Apple even if he admitted tech is out of his circle of confidence. Buffett losing billions. Is Buffett going to buy even more Apple stock now? But to stay on the mindset and implement a bit of investing mindset into this story about Apple, this is a great comment. I think Warren also said that he likes to keep away from Wall Street noise. That's why he enjoys living in Omaha and away from distractions. We currently live in an environment with information overload and Wall Street noise with the internet, except that could push us into making an irrational move. And this is the core, I want to discuss this, because Warren also says this. So Buffett chose to stay in this world, Omaha, Nebraska, where corn grows just minutes from downtown. Now Omaha is a nice town, but nobody claims it's a world financial center, and here the only thundering herd is actually on four feet. Don't you find Omaha a little bit off the beaten track for the investment world? Well, believe it or not, we get mail here and we get periodic goals and we get all the facts needed to make decisions. Unlike Wall Street, you'll notice we don't have 50 people coming up and whispering in our ear that we should be doing this or that this afternoon. Do you appreciate the lack of stimulation here? I like the lack of stimulation. We get facts, not stimulation here. How can you stay away from Wall Street? Well, if I were on Wall Street, I'd probably be a lot poorer. You get overstimulated on Wall Street, and you hear lots of things and you may shorten your focus, and a short focus is not conducive to long profits. Here I can just focus on what businesses are worth, and I don't need to be in Washington to figure out what the Washington Post newspaper is worth, and I don't need to be in New York to figure out what some other company has worth. It's an intellectual process. And the less static there is in that intellectual process, really the better off you are. So Buffett clearly says this. If you have too much information, you might shorten your focus and then make wrong investment decisions. So when looking at Apple, when looking at Buffett's investment in Apple, you have to have a long-term focus, which is not the case with most investors, and especially the media and internet. So let's talk about it. The main question is, okay, Apple fell 10% today talking about short-term focus, and is it a bargain? Is it a bargain? Is it a bargain? Well, that depends on you, because if you look at the short-term focus, if you have a narrow focus, like 99% of investors, then you look, okay, Buffett, Apple fall 10%. We'll discuss a little bit later more about Apple's price. However, you need to have a view about the business. What am I getting for my price over the long-term? And that's exactly what Buffett does. And I made a video in February of 2018 discussing that, and actually nothing has changed if you have a long-term view. So here's the video. Good day, film investors. Now, what has Buffett been buying last quarter? Apple and Apple stock and a lot of it. Apple is now his biggest position, his biggest portfolio position, making 40.6% of his stock holdings. So I really want to see why Buffett is buying Apple, and I think I have a very different perspective than most analysts have on Apple, because Buffett is looking for a 10% return on investment, while Apple has now a price-to-earnings ratio of 18, which is just north of 5%. So it means that Buffett sees much more potential in Apple, and that's why he's buying the stock. Let's see. According to some surveys, JP Morgan, 92% of iPhone customers will buy another iPhone, while a Comcast survey indicated a 96% retention rate. So when you put that on the 1.3 billion devices, then you have an ecosystem of loyal customers. And that's what Buffett is looking for, because he's always looking for a moat, investing in a moat. What will Apple do with those 1.3 billion customers growing customer base? They will increase the services. They will grow Apple Pay. Apple Pay is now available in more than 50% of merchants in North America. So if they can increase that further, we will stop walking around with our wallets and we will just walk around with our phone. So that's perhaps the future that Buffett sees. In the meantime, he gets a nice dividend, plus a lot of returns from buybacks, which I'll show you later in the model how that can affect Apple's stock price and why Buffett is buying Apple. Remember Buffett and Munger said that their long-term aim for return for Berkshire is 10% now. So he thinks Buffett is still cheap and will deliver a 10% or higher return in the long term. Apple's services revenue was up 18% last year and they are on schedule to doubling their 2016 services revenue by 2020. If they continue on that pace up to 2027, services might be the biggest component of Apple's revenue.  So perhaps Buffett is saying okay, this is another American Express. People will simply use their phone to pay, to do whatever, to do all the transactions, so I better be invested in something like that. Plus the yield now is not that bad and there is a lot of cash. Second thing that he wants after a mode is a great return on invested capital and Apple has a net profit margin of 21%. That's one of the best returns on invested capital out there. So if I put everything in a model, we go from net income of 48.35 billion in 2017 and we make that net income grow at 10% over the next 10 years, we come to 125 billion of net income in 2027. If Apple continues to buy back 3% of the number of shares outstanding over the next 10 years, the number of shares outstanding will go from the current 5.25 billion to 3.87 billion, which means that earnings per share, if that happens, we'll go from the current 9.21 dollar end of Q4 for Apple 2017 to 32.39 dollars. If we add the price earnings ratio of 20 onto that, we get to a stock price of 640 and the market capitalization of 2.5 trillion. So that is what Buffett is buying now. If it doesn't happen, he will get his dividends. He will probably get a good return on investment. However, the potential is there to get a great return on investment. Apart from Apple pay, there is the augmented reality. A lot of things that go around and evolve around Apple's ecosystem of 1.3 billion highly paying customers because they paid a lot for that iPhone. Now something very important, if I look at what analysts have been asking the management in the last conference call, it is mostly short term. It all evolves around the capital structure, iPhone demand and pricing, the 1000 iPhone 10 or iPhone X versus cheaper products, March quarter guidance, weaker dollar, iPhone replacement cycle that is getting longer, tax rate, home pod, trends in China, net cash. Only Michael Olson from Piper Jeffrey was asking about future products and how the management sees a augmented reality fit Apple's future. So only one analyst asks a long term view, only one analyst has a long term view of what's going on or at least asks a question about that. However, the key with Apple I think is the long term view, not the focus on the next quarter, March guidance or on the next iPhone cycle, the focus, if you're really an investor, you're focusing on the ecosystem Apple is building and that will last for the next 10, 20 years as it has been the case for the past 41 years since Apple has been founded. I also want to compare Apple to others. So the customer base Apple 1.2 billion, Microsoft 1.2 billion, Google 2 billion, Amazon 250 million, Facebook 1.4 billion, Netflix 100 million. The price to earnings ratio is the lower with Apple, which means the company's already profitable and it's monetizing hardware sales, not even services yet. So there is a huge margin for improvement. Microsoft much higher, Google much higher, Amazon much higher price to earnings ratio. Also the market caps are there, Netflix says is much lower, but also market caps aren't much away from Apple's, but Apple's is the most profitable of all those companies. So from that perspective, from a customer base to earnings, Apple is the cheapest of the bunch. So if you're looking for a good long term investment that will give you above 10% over the very long term, buy Apple, reinvest the dividends and you will do probably very, very fine over the very, very long term. And that's why Buffett is buying Apple. And that's exactly that. It's not the market who will tell you whether Apple is a bargain or not. It's you. Look at Apple, look at what can happen to earnings, look at what can be your investment returns and then see how that fits your portfolio compared to other things. Do you have a short term focus? Will Apple stock go up or down? Nobody knows what will Apple stock do. Do you have a long term focus? Is this a good business that I want to add to my portfolio? Then we are talking about something and then we are talking about investing, not speculating. Let's dig deeper. The market is saying Apple lost so much over the last three months, Apple lost 10% in a day. The three year change is if I look at this correctly, up 46%. What are we talking about? Of course, there was this boom 100% up and now it's down. Who cares about the stock you're investing in a business? But it's difficult to forget about the stock price because there is so much stimulation from looking at the stock price and which leads away from the focus on the business. Most people focus on this, market value, single, biggest single day loss. Congratulations, Apple loses record 463 billion in market cap in three months. However, I bet that 90% of Apple shareholders didn't even read Tim Cook's letter and they are just focused on the headlines. You can read the headlines or actually read the letter and see what Apple has to say. Revenue of approximately 84 billion, gross margin of 48%, operating expenses 8.7 billion, slightly higher than the previous quarter, other income expenses 1 billion less than the previous same quarter of the previous year, tax rate 16.5% and the key there and why Buffett is investing over the long term, the number of shares computing diluted earnings per share to be approximately 4.7 billion compared to 5.1 billion last year.  So it's about the revenues, the long-term profits. Then the question is will Apple go bust or will it continue to print money? As Cook says, our profitability and cash flow generation are strong and we expect to exit the quarter with approximately 130 billion in net cash. As we have stated before, we plan to become net cash neutral over time. Find out what that means if you are a long-term investor, even if you are a speculator. You might be surprised over the long term. But then you will see a lot of comments like this and even if Apple managed to survive and after looking at that list you have a disaster waiting to happen. That's usually what happens when stock prices decline because people don't look at businesses. So that's the psychology, that's the stimulus to the human mind and we have to really focus on our focus that it is rational long-term investment focus, focused on what are our needs, whether Apple is a bargain depends on you, not on the market, focused on the market and then you might understand approach to Apple, why Buffett is doing this, what's the value of the brand etc etc. So just a different point of view from what most of the market is now discussing. Thank you for watching, see you tomorrow and I'll discuss what am I doing with my stock market portfolios.


Hey, let's go over some of the details of the first section. So once again to your stance You want to have a good structure so that you are not easily pushed and you can deliver power in your attacks So the first thing we're gonna start with our feet and then get working way up to the top right head So when your feet are like this the intention is to have your feet scoot and drive into the ground and turn out like this Okay, so if I was going to Use that intention and if my feet actually a lot of smooth it would actually Move out like that, but we're gonna grip it onto the ground with all the points of contact on our feet Alright, so the point of contact is our heel Ball of our foot the smaller ball of our foot and the toes So you want to make contact with all the points of your foot and screw it into the ground this way your knees Should be driving a little bit outwards, but then your muscles should be Squeezing on the inside of your legs So you feel that you have the pressure going out this way But also you have something pulling it back with your muscles on the inside. All right, so it sounds Contrary, but that's how you get the Strength in your stance is you want to have them both going in both directions at the same time So while screwing out once again the feet are going outwards you heal and up all the points of the foot by touching the ground Okay, make sure your toes are not up in the air your toes are all touching the ground your knees are Wanting to rotate this way and your inside is pulling it back in Okay, now going out to your waist and your hip area like I said before you want to tuck in your tailbone So make sure that it's not like this It's not like this But you want to tuck it in on a hip like this Okay, but not too much like this because then you get it get a indentation here for the reason for all these Structures is to create a spring and wave effect through your body Wing Chun has very small movements in the hands as you can see in our form It doesn't really move out like this only moves out to here So where do you generate your power from you have to generate from your Legs and from your spine so the legs are Sprawling out the energy like this sprouting up once it reaches this fine. It's fine becomes a ball So here's a ball like this. It is releasing like this So here's a ball is it's pulled and releasing So it goes from the curve to a straight so you combine both your legs come up and releasing It's such a small movement But once you can train it you get lots of power. So spine I mean the spine comes up the feet of the legs of the spine and then once it gets up to the spine You want to transfer it to your shoulder down into your elbow and into your wrist and into your knuckles All right, so there's actually three springs here. We have your hips I mean your feet going up to your hips through your legs then we have yours tailbone going up to your bone up Here between the shoulders the big one on your neck behind your neck and then we have a spring of the shoulders here and Sinking the elbow so you combine those three springs you get a lot of power and mention Also, it becomes form of defense when you engage your muscles on the inside and outside and Grip the floor with your feet while sprawling out get a lot more resilience and protection for your muscles Also, when you round up your spine you get a lot more resilience in the in your waist area And if you stick out your chest and pull your elbows back You get a lot more protection for the center and chest area of your body so it really good stance what it does is it gives you protection and it also Gives you more power in your strikes and attacks Now let's talk about some of the hand positions in the first four So first hand position is the yeti Chongqun on this or the straight vertical punch now a lot of people Say that your vertical punch should do this at the end do this at the end Don't really worry about it What you want to do is focus on driving the bottom three knuckles straight into the target So don't worry about going this or like this when you come out Just drive the bottom three knuckles straight from here straight in the target when you have that then you have to correct correct technique So for the palms make sure that your palms are like this and your finger is tough nice and Needs next to your hand make sure it's not hanging out like this or even slightly like this You guys this thing easily get caught when you're trying to palm somebody you can get caught in some of these arm And you can easily sprain or dislocate your your thumb. So make sure your palms are like this one good exercise for training your palms is to Try to extend your arms straight out and try to pull your fingers straight back and touch your shoulder with it All right So what that does is trains your tendons and trains your ligaments to become a lot stronger And that way you can get a lot more inch power in short range power that we practice a lot in Ling Cheng another position that you'll see is the time cell focus out and who's out so When you do your time cell focus out and who's out Try to keep your wrist in the same position All you're changing is the handshake the rest of your structure will remain the same so None of this is moving the only thing that is moving is my hand. So here we go. We got the time cell We got the circle hand We got the hook. I mean the loose out. We got the focus out. It's all the same So none of this is moving all we changing is the shape of the hand another important point is the position on the elbow and the structure of the elbow in The whole form the reason we want to slide the hand or the Arm across our body like this Cross the body is you want to keep the elbow as close to the center line as possible as we're moving it out Now you want to keep it as close as possible, but you don't want it to be so Right in the middle so much that you lose your structure here All right, you want to keep your structure because what this does is it tends to Make your spine Distort a little bit too much. So just go close enough So that you can feel That this is sinking down, but not too much in the middle, but not too much Flared out a great way to do this is to do push-ups on the ground while we'll close Okay, find the position on the ground where it's easiest for you to do a push-up with your Elbows real close to your body now if you can do a push-up You can experiment you can try holding a position like this now Is this going to be easier or is this going to be easier? I think you would find that having your elbows close to your body will be easier You can even rest it on very onto your chest now if you put it up here What happens is now you're using your shoulder muscles, and you're not engaging your back muscles to keep your Keep your energy forward this will just you be using your shoulder muscles and your chest muscles But when you bring them in like this Nice and close but not this close about this close Then what that happens is it engages your back muscles and your shoulders and your chest so more muscles are engaged and also the structure will Connect your wrist directly into your spine a lot better than if you do this All right, that's why we have a really close elbow whenever we Do our hand positions in the first form


So we're here with the post-doc, PDLIFE, plus dot. And who are you? Steven. Steven. Our boss Paul. Hi. How are you? So this is your product? Yes, this is our product. So what is this? With alarm clock. Alarm clock? Yes, with the forecast. The weather forecast, app control. Can you control it? You control? Yes. And you can change the time you want. It's going to do some noise. And this is a simmer, different? This is a speaker. Typical? Speaker. Yes. And this is a little house. A little house. Cloud. Little cloud. What kind of price is this? Which one? Like the house. 10.8. 10.8 in the cloud? 10.5. Alright. And then you have this one? This one is 20.5. 25. You already sell many? Some was new. These are new items. And lots of people like this design. And they prefer this design. And we hope this can give us greater order.


Metal halide perovskites are promising materials for optoelectronic applications due to their high efficiency and low cost. However, one of the main concerns is the potential for ion migration, which could lead to device degradation over time. Studies have investigated the mechanisms behind ion migration and proposed strategies to reduce its effects. Additionally, researchers have begun exploring the possibility of utilizing ion migration as a tool for enhancing device performance. This article was authored by Jean-Wook Lee, Solji Kim, Junim Oh-Yong, and others.