Core principle of Machine Learning 

There of course are many, but for someone coming from computer science, and, software engineering, where the environment is relatively clean and certain (deterministic), it usually is a leap to understand that Machine Learning (and other elements of #AI) are not. 

Machine learning, is based on probability theory and deals with stochastic (non-deterministic) elements all the time. Nearly all activities in machine learning, require the ability to factor and more importantly, represent and reason with uncertainty. 

To that end, when designing a system, it is recommended to use a simple but uncertain (with some non-deterministic aspects)  rule, rather than a complex but certain rule. 

For example, having a simple but uncertain  rule saying “most birds fly”, is easier and more effective than a certain rule such as “Birds can fly, except flightless species, or those who are sick, or babies, etc.”

As one starts getting deeper in Machine Learning, a trip down memory lane around Probability distribution, expectation, variance, and covariance won’t hurt. 

Protecting your Data from being slurped up!

How to protect your data from what the The Guardian calls as ‘US border agents are doing ‘digital strip searches’?

The only way I think this is possible in a fool-proof way in the near future is that every has to absolutely implement a two-factor-DDA-authentication. There is not better #security today – period! There ain’t no stinking #AI, #RNN, #DNN, or Boltzmann machine in the world, or #Quantum computer worth its #quibits which can crack this – at least not in the near future.

And of course, when you have friends and family involved, the group authentication is a sure-fire way to stop anyone snooping in. #security

HoloPortation – Limits of Human Kind

When it comes to AI and the limits of human kind, what better example that shows the art of the possible than what Microsoft is doing with special awareness and HoloLens and other sensors.

And not only can this replay time and allow you to have a ‘living memory’ but it also is mobile.

I do believe we are living in the great time ever! 🙂

Neural Networks

Of course you heard of Neural Networks! In the context of #AI they are all the buzz of course.

You might have heard of some such as DFF (Deep Feed Forward) or RNN (Recurrent neural networks)? Or perhaps you meant Recursive neural networks? Irrespective, it can be quite messy as you can see below and it would be somewhat important to have some understanding of the differences.

neuralnetworks

And in case you are thinking, well what good or use is all this? Here is one example ( MarI/O – Machine Learning for Video Games) that shows how a computer learned to play Mario using DeepMind and a Neural network.

MarI/O uses something called NEAT (neural evolution of augmenting topologies) and is written in Lua (which is very similar to .NET) and runs in BizHalk which is a emulator for games and their various platforms (and not to be confused with BizTalk). You can checkout the code for this here.

Fjodor also has outlined a (very) brief outline on what some of these are and what they mean. If you just want to get a quick basic understand it is a great read, with of course links back to original research papers (and deeper reads) if that is your cup of tea.

Happy reading! 🙂

On Culture

I have said in the past, Culture eats strategy for breakfast. One cannot fix culture – but rather lead with example and have others follow.

This article on how Satya at Microsoft is expecting a culture shock to drive growth at Microsoft is a great example of this. Quite exciting days for Microsoft ahead.

Google as Xerox PARC?

This wired article titled If Xerox PARC Invented the PC, Google Invented the Internet, is an old one – from 5 years ago, but it is still an inspirational read. So many things lined up for Google, to be where they are today.

I still get goose bumps reading that article – but then I am a geek, if that wasn’t obvious. Whilst, grid computing with GFS, MapReduce, Hadoop, are still very much relevant and great (and most others still trying to use and understand it); Dynamo (from Amazon) and BigTable lead to NoSQL which is great and still worth spending a lot of time learning, playing, and, experimenting – I would love to hear on what they are doing now with Colossus (think of that as GFS vNext), Caffeine and, Spanner.

7 years is an eternity and who knows what is cooking? And of course what are both Microsoft and Amazon doing to compete around this. How can you not continue to be excited the world we are living in? 🙂

HoloLens – Spectator view – allowing others to see what you are seeing

Microsoft just announced an update around the HoloLens that allows you to share on what you are seeing (from a first-person perspective) with others to make to more interactive. This is a combination of MRC (Mixed Reality Capture) which already exists and some new updates that address some of the short coming of the MRC – especially when working with a audience.

The main use case on the spectator view – as the name suggests is to allow those in the room not wearing a device to see the holograms but also the interactions that the folks wearing HoloLens with their mixed reality experience.

You can use this to capture a mixed-reality scene, live stream the content (say in a meeting / conference), and, shoot/record the video. This essentially is the ‘cheap’ version of the special camera rig that Microsoft uses for keynote presentations.

It is not as straight forward as you might imagine; but at the same time if you are doing this ‘properly’ it isn’t as complex as well. You need some special equipment, and need to change some configuration, and add details to your apps to account for this.

.

You do need some special DSLR cameras (with HDMI output), and some other hardware – details can be found here. You can also 3D print the mount (STP can be found here).

And in addition there are a bunch of other steps that you need to do – from calibrating  (to get the offset from the camera), to the Compositor (which is a unity extension)  and allows you to record the video and change the hologram opacity, spatial mapping data details, etc.

All the detailed steps can be found here. And if this is all new, then I highly recommend to check out the Holograms 240 course. And below is an example on what this all can look like.

Mouse without borders issue – Only one usage of each socket address

I have been using Mouse without Borders, a program that allows you to make a virtual KVM between machines for some time at home and it is awesome. You can use one set of keybard and mouse among various (windows) machines including clipboard and copy and paste. If you haven’t tried it, I would highly recommend it.

However lately I could not connect between two machines and kept getting the error: “Only one usage of each socket address“. To the point where it was unusable and was pretty annoying. I looked online at their site but nothing jumped out. BTW, I was seeing this only on one machine (running Windows 10) and not the other one (also running Windows 10 but an inner ring of the Creators Update – essentially the next version of Windows).

What I understand the issue to be is that Windows is running out of ports and where programs that use a port for a short time, it won’t matter much, in this case the port is always going to be used.

The solution that seems to be working for me is quite simple – we increase the number of ports available to Windows. This is quite simple and to do this if you run an elevated command prompt and copy and paste the following command:

netsh int ipv4 set dynamicport tcp start=1025 num=64511

And if you are not sure on how to get the elevated command prompt – easiest way to do that is press WinKey + X, and from the menu select Command Prompt (Admin) as shown below.

Elevated command prompt menu
Elevated command prompt

Bing Blues

It isn’t often that one see’s issues with Bing – I can’t recall when I last saw it, but then when it does it sure is cute. We love Pandas so this can only be good. 🙂

Object and scene detection with #AI

Continuing the previous #ArtificialIntelligence theme. Wanted to see what and how does Amazon’s rekognition work and different from the #AI offerings from the others, such as Microsoft.

Here is a #ProjectMurphy image’s confidence score. I am glad to see that there is a 99% confidence that this is a person.

Object and Scene detection

The request POST is quite simple:

{
 "method": "POST",
 "path": "/",
 "region": "us-west-2",
 "headers": {
 "Content-Type": "application/x-amz-json-1.1",
 "X-Amz-Date": "Thu, 01 Dec 2016 22:21:01 GMT",
 "X-Amz-Target": "com.amazonaws.rekognitionservice.RekognitionService.DetectLabels"
 },
 "contentString": {
 "Attributes": [
 "ALL"
 ],
 "Image": {
 "Bytes": "..."
 }
 }
 }

And so is the response:

{
 "Labels": [
 {
 "Confidence": 99.2780990600586,
 "Name": "People"
 },
 {
 "Confidence": 99.2780990600586,
 "Name": "Person"
 },
 {
 "Confidence": 99.27307891845703,
 "Name": "Human"
 },
 {
 "Confidence": 73.7669448852539,
 "Name": "Flyer"
 },
 {
 "Confidence": 73.7669448852539,
 "Name": "Poster"
 },
 {
 "Confidence": 68.23612213134765,
 "Name": "Art"
 },
 {
 "Confidence": 58.291263580322266,
 "Name": "Brochure"
 },
 {
 "Confidence": 55.91957092285156,
 "Name": "Modern Art"
 },
 {
 "Confidence": 53.9996223449707,
 "Name": "Blossom"
 },
 {
 "Confidence": 53.9996223449707,
 "Name": "Flora"
 },
 {
 "Confidence": 53.9996223449707,
 "Name": "Flower"
 },
 {
 "Confidence": 53.9996223449707,
 "Name": "Petal"
 },
 {
 "Confidence": 53.9996223449707,
 "Name": "Plant"
 },
 {
 "Confidence": 50.69965744018555,
 "Name": "Face"
 },
 {
 "Confidence": 50.69965744018555,
 "Name": "Selfie"
 }
 ]
}

Here is what the facial analysis shows;

Facial Analysis

However how does it handle something a little more complex perhaps?

Object and Scene detection

And finally, what of the comparison? I think there might be some more work to be done on that front.

Face Comparison capture

Here is the response:

{
 "FaceMatches": [
 {
 "Face": {
 "BoundingBox": {
 "Height": 0.3878205120563507,
 "Left": 0.2371794879436493,
 "Top": 0.22435897588729858,
 "Width": 0.3878205120563507
 },
 "Confidence": 99.79533386230469
 },
 "Similarity": 0
 }
 ],
 "SourceImageFace": {
 "BoundingBox": {
 "Height": 0.209781214594841,
 "Left": 0.4188888967037201,
 "Top": 0.13127413392066955,
 "Width": 0.18111111223697662
 },
 "Confidence": 99.99442291259765
 }
}

Playing with #AI

So, been spending a lot of time recently around many things related to Artificial Intelligence (#AI).  More on that some day. 🙂

Was curious about yesterdays Amazon’s announcement to jump on this bandwagon. Of course Microsoft and others have been there. I don’t know to what extend has Amazon been working on this, but given Alexa has been out for a couple of years, I know they have had rich pickings of tuning this further.

I thought Polly (like the parrot?) was quite different from the things I have seen from others. This is a text-to-speech, where it renders the inputted text into various dialects and you can have a few outputs for those too. It supports a few dialects (for the synthesized speech) and one can use it using a simple API (the Android example shows it is not very complex to consume, of course you still need to think about the overall design and elements of Software Engineering, latency, limits, bandwidth, etc.). Should you desire you can customize it using pronunciation Lexicons that allow one to tweak this.

Here are a few examples, of course none of them are me, and hence the “cold”.

Australian (Male):

Indian (Female):

Italian (Male):

US/American (Male):

Of course if you play with it, it is easy to pick up the patterns and what is being changed, versus not. But kudos to the team on this. I think it will help accelerate the adoption of #AI.

Excel runs the world

This video proves it; and it also shows that Clint is probably one of the best teachers out there! Love the passion! Now, go learn some Excel. 🙂

Real-time performance capture – HoloPortation?

Some of the folks working on PPI and HoloPortation team from MSR left and went to setup a new company called PerceptiveIO.

They have recently published a paper called Fusion4D: Real0time performance capture of challenging scenes. In that they cover some of the work around multi-view performance capture, the raw depth acquisition and preprocessing that needs to be done around that. This interestingly also handles deformation changes (e.g. taking off a jacket or a scarf) and these can be non-rigid and much more difficult to handle, but they are done beautifully.

ffd 1.png

Combining this with the likes of HoloLens would make it quite interesting. If you want to see more, check out the video below showing the examples and transitions below. Perhaps one day, it would allow us to see and experience events from afar. 🙂

How I feel each time I wear the HoloLens?

Honestly, I don’t think even Tony Stark can explain – this sums it up quite nicely and the music is just the cherry on top. 🙂