<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ryan Lintott</title>
	<atom:link href="https://ryanlintott.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://ryanlintott.com</link>
	<description></description>
	<lastBuildDate>Mon, 07 Feb 2022 17:33:17 +0000</lastBuildDate>
	<language>en-CA</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://i0.wp.com/ryanlintott.com/wp-content/uploads/2019/05/cropped-Folder_logo_512x512.png?fit=32%2C32&#038;ssl=1</url>
	<title>Ryan Lintott</title>
	<link>https://ryanlintott.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">113022379</site>	<item>
		<title>Moodlight</title>
		<link>https://ryanlintott.com/moodlight/</link>
		
		<dc:creator><![CDATA[Ryan Lintott]]></dc:creator>
		<pubDate>Fri, 21 Oct 2016 17:53:29 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Riot]]></category>
		<category><![CDATA[Matrix]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Phillips Hue]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Slackbot]]></category>
		<category><![CDATA[Twitch.tv]]></category>
		<category><![CDATA[TADHack]]></category>
		<category><![CDATA[Hackathon]]></category>
		<category><![CDATA[Moodlight]]></category>
		<category><![CDATA[Slack]]></category>
		<guid isPermaLink="false">http://ryanlintott.com/?p=386</guid>

					<description><![CDATA[Bringing chat room emotions into the real world with theatrical lighting.]]></description>
										<content:encoded><![CDATA[
<p>Last weekend I participated in my first hackathon, <a href="http://tadhack.com/2016/global/london/">TADHack Global: London</a>. (TAD stands for Telecom App&nbsp;Development but luckily it was open to anyone and everyone.) When I arrived on Saturday I sat down at a random table and introduced myself. A&nbsp;presenter welcomed everyone and after we watched&nbsp;few introduction&nbsp;videos&nbsp;from the&nbsp;sponsors&nbsp;they just said “Start your hacks, the deadline is noon tomorrow!”</p>



<p>At that point I turned to the others at our table and said “Well I guess we’re a group! Anyone have any ideas?” This was also the first hackathon for most of my team and we had all met for the first time only a few minutes ago. Telecoms was completely new to me and full of acronyms I didn’t understand so I decided&nbsp;instead of looking at the technology, I would just think more generally about digital communication.</p>



<p>I had seen&nbsp;the&nbsp;<a href="https://www.youtube.com/watch?v=YuIgyKLPt3s">Facebook Social VR&nbsp;demo</a>&nbsp;recently where people could interact in VR by the use of avatars. The most interesting element of the interaction was that these avatars could express emotion. I was a bit less impressed when I found out those emotions were triggered by buttons and not generated through something more advanced like&nbsp;voice recognition, facial muscle tracking or neurotech but the concept still got me curious.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Facebook Social VR Demo - Oculus Connect 2016" width="1778" height="1000" src="https://www.youtube.com/embed/YuIgyKLPt3s?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<p>Building full 3D avatars&nbsp;would take far&nbsp;too long but I liked the idea of focusing on&nbsp;emotions. Someone else on my team suggested that we try to use some of the IoT (internet of things) devices that were available for us like the Phillips Hue lightbulbs. Mixing those ideas together, I had&nbsp;a&nbsp;&#8220;lightbulb moment&#8221; so I&nbsp;pitched it to the rest of the team.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>“What if we could light&nbsp;a room with different colours based on the emotion of a conversation?”</p></blockquote>



<p>It wasn’t practical, and we had no idea who would want such a thing, but we all thought it would be quite fun and achievable so we set to work.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="800" height="374" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/the_hack_01.png?resize=800%2C374" alt="the_hack_01" class="wp-image-393" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/the_hack_01.png?w=800&amp;ssl=1 800w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/the_hack_01.png?resize=300%2C140&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/the_hack_01.png?resize=768%2C359&amp;ssl=1 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure></div>



<p>By noon on Sunday we had a working prototype of what we called the Moodlight. We could type messages into <a href="https://riot.im/">Riot</a> (a <a href="https://matrix.org/">Matrix</a> chat client) and have them sync through to a <a href="https://slack.com/">Slack</a> channel. A custom Slackbot on the channel would then send all of these messages (via Slack&#8217;s <a href="https://api.slack.com/rtm">RTM API</a> and <a href="https://github.com/slackhq/python-rtmbot">rtmbot</a>)&nbsp;to a python client running on my laptop. Once there, we used <a href="https://algorithmia.com/">Algorithmia</a> to run sentiment analysis which would&nbsp;output a value&nbsp;representing the&nbsp;negative&nbsp;or positive&nbsp;emotion of the message. That value (from&nbsp;-1 to 1) was then translated into a hue value between red and blue (65000-45000) and sent through a local network connection to the <a href="http://www2.meethue.com/en-gb/">Phillips Hue</a> light via their&nbsp;<a href="http://www.developers.meethue.com/">API</a>.</p>



<p>A <a href="http://www.tomaszezula.com/2016/10/17/tadhack-london-winners/">post from Thomas</a>, one of my teammates, goes into much more detail including the <a href="https://github.com/zezutom/tadhackLdn2016">source code</a>.&nbsp;It was fun typing messages like “happy happy happy” and “angry sad death pain” and then seeing the light change colour but I wanted to figure out a practical use aside from just novelty.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" decoding="async" width="542" height="379" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/slack_screenshot_01.png?resize=542%2C379" alt="slack_screenshot_01" class="wp-image-394" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/slack_screenshot_01.png?w=542&amp;ssl=1 542w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/slack_screenshot_01.png?resize=300%2C210&amp;ssl=1 300w" sizes="(max-width: 542px) 100vw, 542px" /></figure></div>



<p><a href="https://www.twitch.tv/">Twitch.tv</a> is a network where you can watch people play video games. Next to the game screen you can also watch a webcam view of the gamer as they play. Many channels are live with a chatroom so that viewers and the gamer can interact. Just like a sporting event these games can be very exciting to watch with emotions running high so I thought this would be the perfect market for the Moodlight.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" decoding="async" width="1320" height="624" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_neutral-1.jpg?resize=1320%2C624" alt="moodlight_game_neutral" class="wp-image-395" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_neutral-1.jpg?w=1320&amp;ssl=1 1320w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_neutral-1.jpg?resize=300%2C142&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_neutral-1.jpg?resize=768%2C363&amp;ssl=1 768w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_neutral-1.jpg?resize=1024%2C484&amp;ssl=1 1024w" sizes="(max-width: 1320px) 100vw, 1320px" /></figure></div>



<p>If a&nbsp;gamer was doing well or failing badly, the people in the chat room would very likely react to this. The Moodlight could then take this emotion and visualise it with colourful&nbsp;lighting around the gamer, blue for positive and red for negative. The theatrical&nbsp;lighting would make the webcam feed more entertaining and&nbsp;it would also allow the gamer to understand the overall sentiment of their fans without having to take their eyes off the game.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1320" height="624" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_positive.jpg?resize=1320%2C624" alt="moodlight_game_positive" class="wp-image-397" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_positive.jpg?w=1320&amp;ssl=1 1320w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_positive.jpg?resize=300%2C142&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_positive.jpg?resize=768%2C363&amp;ssl=1 768w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_positive.jpg?resize=1024%2C484&amp;ssl=1 1024w" sizes="(max-width: 1320px) 100vw, 1320px" /></figure></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>&#8220;Bringing chat room emotions into the real world with&nbsp;theatrical lighting.&#8221;</p></blockquote>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1320" height="624" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_negative.jpg?resize=1320%2C624" alt="moodlight_game_negative" class="wp-image-396" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_negative.jpg?w=1320&amp;ssl=1 1320w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_negative.jpg?resize=300%2C142&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_negative.jpg?resize=768%2C363&amp;ssl=1 768w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/moodlight_game_negative.jpg?resize=1024%2C484&amp;ssl=1 1024w" sizes="(max-width: 1320px) 100vw, 1320px" /></figure></div>



<p><br>After two days of hacking away our team presented the project and won “best hack” with the Moodlight. You can watch our presentation&nbsp;as well as all of the others in the video below.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="TADHack London Pitches" width="1778" height="1000" src="https://www.youtube.com/embed/X41RbOKTrbE?start=1750&#038;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<p>At the moment the code only works with Riot and Slack as we didn’t have time to look for connections to Twitch.tv (if they’re even possible). The algorithm itself is also quite basic and reacts to each message individually. It can be set to work with the average sentiment but we found this was less exciting as it would level out over time. This could of course be improved by limiting the number of recent messages used in the average to find a nice balance.</p>



<p>I really enjoyed <a href="http://tadhack.com/2016/">TADHack</a> and I’ll be on the lookout for interesting hackathons in the future.</p>



<p>A big thanks to everyone on the Moodlight team, <a href="http://tadhack.com/2016/">TADHack</a>, <a href="https://www.ipcortex.co.uk/">IPCortex</a> for organising the London location&nbsp;and <a href="http://www.idea-london.co.uk/">IDEA London</a> for hosting!</p>



<div class="wp-block-image wp-image-399"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="678" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/2016-10-16-14.17.13.jpg?resize=1024%2C678" alt="Photo: ipcortex" class="wp-image-399" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/2016-10-16-14.17.13.jpg?w=1024&amp;ssl=1 1024w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/2016-10-16-14.17.13.jpg?resize=300%2C199&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/10/2016-10-16-14.17.13.jpg?resize=768%2C509&amp;ssl=1 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Team Moodlight: Astrid de Gasté, Ryan Lintott, Tomas Zezula, Istvan Hoffer, Jing Chan</figcaption></figure></div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">386</post-id>	</item>
		<item>
		<title>An Equation-Free Explanation of Machine Learning</title>
		<link>https://ryanlintott.com/an-equation-free-explanation-of-machine-learning/</link>
					<comments>https://ryanlintott.com/an-equation-free-explanation-of-machine-learning/#comments</comments>
		
		<dc:creator><![CDATA[Ryan Lintott]]></dc:creator>
		<pubDate>Mon, 03 Oct 2016 10:00:29 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[machine learning]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[logistic regression]]></category>
		<guid isPermaLink="false">http://ryanlintott.com/?p=328</guid>

					<description><![CDATA[Over the past few years there&#8217;s been a&#160;growing interest in artificial intelligence with many articles about its accomplishments, its potential and its implications for the future. &#160;These articles often reference how the software &#8220;learns&#8221; or how it &#8220;chooses&#8221; the best solution&#160;but few of us understand what these terms actually mean when applied to a machine. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Over the past few years there&#8217;s been a&nbsp;growing interest in <strong>artificial intelligence</strong> with many articles about its <a href="https://deepmind.com/research/alphago/">accomplishments</a>, its potential and its <a href="http://www.theverge.com/2015/1/12/7531269/scientists-sign-open-letter-focusing-on-AI-dangers-benefits">implications for the future</a>. &nbsp;These articles often reference how the software &#8220;learns&#8221; or how it &#8220;chooses&#8221; the best solution&nbsp;but few of us understand what these terms actually mean when applied to a machine. &nbsp;<strong>Machine learning</strong> to many people is just a magical black box.</p>



<p>My interest in AI grew substantially after reading the&nbsp;<a href="http://waitbutwhy.com/2015/01/artificial-intelligence-revolution-1.html">Artificial Intelligence Revolution</a> article on&nbsp;<a href="http://waitbutwhy.com/">Wait But Why</a>. &nbsp;I then looked further into&nbsp;<a href="https://deepmind.com/">DeepMind</a> and found some of the <a href="https://deepmind.com/blog/deep-reinforcement-learning/">amazing things</a> machine learning can do today. It was all very interesting but I needed to know what was happening inside the black box. I knew that you&nbsp;could&nbsp;feed in a bunch of data at one end and then answers start popping out of the other but at the time I had no idea how it&nbsp;worked.</p>



<p>I&#8217;ve now just finished week 8 of 11 of a&nbsp;<a href="https://www.coursera.org/learn/machine-learning/">Machine Learning</a> course from Coursera and I feel I have at good&nbsp;understanding of at least some machine learning algorithms. This is probably still nothing compared to the highly developed AIs like DeepMind or <a href="https://www.ibm.com/watson/">Watson</a> but&nbsp;it&#8217;s definitely a start.</p>



<p>So, now that I have this introductory knowledge I hope to show others&nbsp;a peek inside the black box. The explanation below is my attempt to explain <strong>logistic regression</strong>, one type of machine learning,&nbsp;without using any mathematic equations. With this simplification I will be glossing over some elements but I hope to retain the most important core concepts.</p>



<h4 class="wp-block-heading" id="on-with-the-learning">On with the learning!</h4>



<p>Logistic regression is used to group data into pre-defined categories. It first learns from&nbsp;an initial set of data with group labels and then applies that knowledge to more unlabelled examples. One common example would be grouping emails into&nbsp;spam or not spam. The example below (definitely not a typical use case) will hopefully help you understand how that learning takes place.</p>



<p>Imagine a large park full people. Each of these people supports either the Red Team or the Blue Team. These teams could represent football clubs, Trump/Clinton supporters, pick your poison, but I&#8217;ll just stick to calling them Red and Blue. A few of the supporters on the Red Team are wearing Red Hats and a few of the supporters on the Blue Team are wearing Blue Hats, but most of the supporters are hatless. Each team has a&nbsp;favourite pub, the Red Pub and the Blue Pub. The pubs are located at opposite ends of the park, and for the most part the Red and Blue teams will flock towards their favourite pub.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="600" height="261" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/red_blue_01_b.png?resize=600%2C261" alt="red_blue_01_b" class="wp-image-338" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/red_blue_01_b.png?w=600&amp;ssl=1 600w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/red_blue_01_b.png?resize=300%2C131&amp;ssl=1 300w" sizes="(max-width: 600px) 100vw, 600px" /></figure></div>



<p>We have the task of distributing Red or Blue Hats to every hatless person. Each hatless person is already a&nbsp;Red or Blue Team supporter, but we have to guess which team they support before giving out the hats. To do this we send out an autonomous drone to fly over the park with a giant curtain.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="283" height="261" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_01.png?resize=283%2C261" alt="drone_01" class="wp-image-339"/></figure></div>



<p>The drone will need to learn on its own where the Red and Blue Team supporters are standing and then use the curtain to divide the two groups. The drone&nbsp;has no data about the pubs or the layout of the park so it has no way of knowing how the supporters will be distributed. It also has no cameras so it can&#8217;t even see the lay of the land. It does however have a GPS and it knows the location of the park so it starts out by just hovering in a random location above the supporters.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="187" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010001-300x187.png?resize=300%2C187" alt="drone_position_010001" class="wp-image-358" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010001.png?resize=300%2C187&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010001.png?resize=768%2C478&amp;ssl=1 768w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010001.png?w=825&amp;ssl=1 825w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>



<p>Even though the drone cannot see the supporters it can hear them. Each hat is equipped with a microphone that can record only the sounds of the person wearing it. The supporters are very vocal so if they are&nbsp;on the wrong side of the curtain they will yell and complain. The microphones pick up only the complaints of the supporters <em>with</em> hats (our <strong>labelled data</strong>&nbsp;in machine learning terms) while the hatless supporters (<strong>unlabelled data</strong>) remain silent to our drone.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="187" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010003-300x187.png?resize=300%2C187" alt="drone_position_010003" class="wp-image-360" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010003.png?resize=300%2C187&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010003.png?resize=768%2C478&amp;ssl=1 768w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010003.png?w=825&amp;ssl=1 825w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>



<p>Conveniently the volume of each yelling supporter will be directly related to how far away they are from the curtain: the further they are from the curtain, the louder they will yell. The total volume from all of the&nbsp;hat-wearing, yelling supporters is a measurement of the amount of <strong>error</strong> in the drone&#8217;s location and orientation.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="187" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010004-300x187.png?resize=300%2C187" alt="drone_position_010004" class="wp-image-361" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010004.png?resize=300%2C187&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010004.png?resize=768%2C478&amp;ssl=1 768w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010004.png?w=825&amp;ssl=1 825w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>



<p>Next the drone makes a few very small movements. First it moves a tiny amount east and then west and records the difference in the <strong>error</strong> (the volume of the angry supporters). It then moves north and south and tests again. Finally it rotates clockwise and counter-clockwise and makes further measurements. Each test helps to identify a direction to move that will lower the overall <strong>error</strong>. The drone&nbsp;then raises the curtain, moves to a new position based on its findings, lowers the curtain again and repeats the test.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="187" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010007-300x187.png?resize=300%2C187" alt="drone_position_010007" class="wp-image-364" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010007.png?resize=300%2C187&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010007.png?resize=768%2C478&amp;ssl=1 768w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010007.png?w=825&amp;ssl=1 825w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>



<p>With each of the drone&#8217;s moves,&nbsp;the <strong>error</strong> drops&#8230;</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="187" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010010-300x187.png?resize=300%2C187" alt="drone_position_010010" class="wp-image-367" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010010.png?resize=300%2C187&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010010.png?resize=768%2C478&amp;ssl=1 768w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010010.png?w=825&amp;ssl=1 825w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>



<p>&#8230;until the lowest level of <strong>error</strong> is found and no movement in any direction would improve it.</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="300" height="187" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010012-300x187.png?resize=300%2C187" alt="drone_position_010012" class="wp-image-369" srcset="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010012.png?resize=300%2C187&amp;ssl=1 300w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010012.png?resize=768%2C478&amp;ssl=1 768w, https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_010012.png?w=825&amp;ssl=1 825w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>



<p>At this point the groups have been split, the hats are distributed to each side and hopefully most supporters get&nbsp;the correct coloured hat. The drone has successfully used a <strong>logistic regression </strong>algorithm to find the best straight line placement to separate the <strong>data</strong>&nbsp;(Red and Blue Team supporters).</p>



<div class="wp-block-image"><figure class="aligncenter"><img data-recalc-dims="1" loading="lazy" decoding="async" width="600" height="374" src="https://i0.wp.com/ryanlintott.com/wp-content/uploads/2016/09/drone_position_01_end_animation_01-1.gif?resize=600%2C374" alt="drone_position_01_end_animation_01" class="wp-image-377"/></figure></div>



<p>The key thing to note is that the drone was never given any specific instructions; it just listens to the <strong>labelled data</strong> (the people with the hats) and makes adjustments until it fits. &nbsp;Because of this simple ruleset (continue moving in a direction that lowers the volume of yelling supporters until the lowest level is reached), the drone could be dropped in any number of different parks with different arrangements of people and each time it would learn the best way to divide the groups.</p>



<p>This example only explains a very simple problem where the data can be separated into 2 groups by a straight line, but <strong>logistic regression</strong> can be used to split multiple groups with&nbsp;much more complex curves. If you&#8217;re interested to learn more, let me know in the comments and I might extend this analogy in&nbsp;another post.</p>



<p>If you would like to read&nbsp;more about machine learning, I would recommend <a href="http://www.r2d3.us/visual-intro-to-machine-learning-part-1/">this article</a> which needs to be read on a large screen to take full advantage of the interactive animations.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ryanlintott.com/an-equation-free-explanation-of-machine-learning/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">328</post-id>	</item>
		<item>
		<title>Interesting Problems</title>
		<link>https://ryanlintott.com/interesting-problems/</link>
					<comments>https://ryanlintott.com/interesting-problems/#comments</comments>
		
		<dc:creator><![CDATA[Ryan Lintott]]></dc:creator>
		<pubDate>Fri, 09 Sep 2016 08:50:01 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://ryanlintott.com/?p=288</guid>

					<description><![CDATA[Back in March, after 9 long and wonderful years, I worked my last day at Squint/Opera. A few years before I had read David Allen&#8217;s Getting Things Done and started evaluating all areas of my life, especially my goals over the next 5, 10, 15 years. I had several ideas but I felt I could [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><span style="font-weight: 400;">Back in March, after 9 long and wonderful years, I worked my last day at </span><a href="http://www.squintopera.com/"><span style="font-weight: 400;">Squint/Opera</span></a><span style="font-weight: 400;">.</span></p>



<p><span style="font-weight: 400;">A few years before I had read </span><a href="https://www.amazon.co.uk/gp/product/0349408947/ref=as_li_tl?ie=UTF8&amp;camp=1634&amp;creative=6738&amp;creativeASIN=0349408947&amp;linkCode=as2&amp;tag=abwtd-21"><span style="font-weight: 400;">David Allen&#8217;s Getting Things Done</span></a><span style="font-weight: 400;"> and started evaluating all areas of my life, especially my goals over the next 5, 10, 15 years. I had several ideas but I felt I could only pursue some of them effectively if I went out on my own. Squint was a growing company though, and I had many responsibilities on my shoulders. I was also excited about the challenges yet to come, so at the time I decided to stay, but not without a plan.</span></p>



<p><span style="font-weight: 400;">Squint transformed over the years that followed. A new division for installations and museums was growing, bringing more interactive work, and </span><a href="http://ryanlintott.com/portfolio-item/messy-goes-to-okido/"><span style="font-weight: 400;">Messy Goes to Okido</span></a><span style="font-weight: 400;"> went into full production. I built a support team including IT, pipeline, UX and several production team leads. I mentored these new leaders and handed over responsibilities, helping to grow the company and ensure I was no longer a bottleneck. Once things had stabilised I gave myself room to step back and re-evaluate both my role at Squint and my future plans. Squint had many intriguing challenges on the horizon, but I knew that some of my goals would never quite fit their business model, so I had to say goodbye.</span></p>



<p><a href="http://www.merlinmann.com/"><span style="font-weight: 400;">Merlin Mann</span></a><span style="font-weight: 400;"> (the </span><a href="https://www.youtube.com/watch?v=z9UjeTMb3Yk"><span style="font-weight: 400;">inbox zero</span></a><span style="font-weight: 400;"> guy) once said &#8220;</span><a href="http://5by5.tv/b2w/14"><span style="font-weight: 400;">try to be scared of more interesting problems</span></a><span style="font-weight: 400;">&#8220;. This is exactly what I&#8217;m planning to do. I&#8217;m scared of tackling problems in neurotech and healthtech, but I also find those areas immensely interesting. I&#8217;m scared of building a company from scratch and going all in on a new app or game, but the challenge also excites me. I&#8217;m of course scared of what </span><a href="http://waitbutwhy.com/2015/01/artificial-intelligence-revolution-1.html"><span style="font-weight: 400;">the future of AI</span></a><span style="font-weight: 400;"> means for humanity, but a problem of that scale is fascinating.</span></p>



<p><span style="font-weight: 400;">So I&#8217;m giving it a shot.</span></p>



<p><span style="font-weight: 400;">Already in the last few months I&#8217;ve had the opportunity to work on a neurotech project, designing and building a keyboard app for the </span><a href="https://icibici.github.io/site/"><span style="font-weight: 400;">ici·bici (formerly Smartphone BCI)</span></a><span style="font-weight: 400;">.&nbsp;</span><span style="font-weight: 400;">I&#8217;ve also gone back to school! I&#8217;m in week 5 of a </span><a href="https://www.coursera.org/learn/machine-learning/home/info"><span style="font-weight: 400;">Machine Learning</span></a><span style="font-weight: 400;"> course from Coursera, and I&#8217;m beginning to program basic neural nets. (I had forgotten how much I love math.)&nbsp;</span><span style="font-weight: 400;">If you can&#8217;t tell from the references to GTD and Merlin Mann, I&#8217;m really into productivity and efficient systems. I have developed many workflows for myself, friends and co-workers, and I&#8217;m working on better ways to share these to benefit others.</span></p>



<p><span style="font-weight: 400;">In between these projects I&#8217;m also available for part-time consulting work. I&#8217;m eager to meet teams who are facing new challenges and see if I can help them out. If you have a studio that needs to grow or you just want to make things run more efficiently then please get in touch.</span></p>



<p><span style="font-weight: 400;">To help explain a bit more about my work both old and current, I&#8217;ve built this website. My&nbsp;portfolio currently has a selection of work&nbsp;from my time at Squint and I hope to post more about&nbsp;my&nbsp;new&nbsp;projects soon.</span></p>



<p><span style="font-weight: 400;">The first step was finding interesting problems that scared me but&nbsp;now I’m on a faster path to solving them.</span></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ryanlintott.com/interesting-problems/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">288</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: ryanlintott.com @ 2026-04-23 06:36:51 by W3 Total Cache
-->