<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Machine Learning on Squid's Blog</title><link>https://gigasquidsoftware.com/categories/machine-learning/</link><description>Recent content in Machine Learning on Squid's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 07 Nov 2017 18:51:00 +0000</lastBuildDate><atom:link href="https://gigasquidsoftware.com/categories/machine-learning/atom.xml" rel="self" type="application/rss+xml"/><item><title>Cats and Dogs with Cortex Redux</title><link>https://gigasquidsoftware.com/blog/2017/11/07/cats-and-dogs-with-cortex-redux/</link><pubDate>Tue, 07 Nov 2017 18:51:00 +0000</pubDate><guid>https://gigasquidsoftware.com/blog/2017/11/07/cats-and-dogs-with-cortex-redux/</guid><description>&lt;p&gt;I wrote a &lt;a href="http://gigasquidsoftware.com/blog/2016/12/27/deep-learning-in-clojure-with-cortex/"&gt;blog post&lt;/a&gt; a while back about using a Clojure machine learning library called &lt;a href="https://github.com/thinktopic/cortex"&gt;Cortex&lt;/a&gt; to do the Kaggle Cats and Dogs classification challenge.&lt;/p&gt;
&lt;p&gt;I wanted to revisit it for a few reasons. The first one is that the Cortex library has progressed and improved considerably over the last year. It&amp;rsquo;s still not at version 1.0, but it my eyes, it&amp;rsquo;s really starting to shine. The second reason is that they recently published an &lt;a href="https://github.com/thinktopic/cortex/tree/master/examples/resnet-retrain"&gt;example&lt;/a&gt; of using the RESNET50 model, (I&amp;rsquo;ll explain later on), to do fine-tuning or transfer learning. The third reason, is that there is a great new plugin for leiningen the supports using &lt;a href="https://github.com/didiercrunch/lein-jupyter"&gt;Jupyter notebooks with Clojure projects&lt;/a&gt;. These notebooks are a great way of doing walkthroughs and tutorials.&lt;/p&gt;</description></item><item><title>Deep Learning in Clojure with Cortex</title><link>https://gigasquidsoftware.com/blog/2016/12/27/deep-learning-in-clojure-with-cortex/</link><pubDate>Tue, 27 Dec 2016 10:44:00 +0000</pubDate><guid>https://gigasquidsoftware.com/blog/2016/12/27/deep-learning-in-clojure-with-cortex/</guid><description>&lt;p&gt;&lt;strong&gt;Update: Cortex has moved along since I first wrote this blog post, so if you are looking to run the examples, please go and clone the &lt;a href="https://github.com/thinktopic/cortex"&gt;Cortex&lt;/a&gt; repo and look for the cats and dogs code in the examples directory.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There is an awesome new &lt;em&gt;Clojure-first&lt;/em&gt; machine learning library called &lt;a href="https://github.com/thinktopic/cortex"&gt;Cortex&lt;/a&gt; that was open sourced recently. I&amp;rsquo;ve been exploring it lately and wanted to share my discoveries so far in this post. In our exploration, we are going to tackle one of the classic classification problems of the internet. How do you tell the difference between a cat and dog pic?&lt;/p&gt;</description></item><item><title>Neural Networks in Clojure with core.matrix</title><link>https://gigasquidsoftware.com/blog/2013/12/02/neural-networks-in-clojure-with-core.matrix/</link><pubDate>Mon, 02 Dec 2013 19:28:00 +0000</pubDate><guid>https://gigasquidsoftware.com/blog/2013/12/02/neural-networks-in-clojure-with-core.matrix/</guid><description>&lt;p&gt;After having spent some time recently looking at top-down AI, I
thought I would spend some time looking at bottom&amp;rsquo;s up AI, machine
learning and neural networks.&lt;/p&gt;
&lt;p&gt;I was pleasantly introduced to &lt;a href="https://twitter.com/mikera"&gt;@mikea&amp;rsquo;s&lt;/a&gt; &lt;a href="https://github.com/mikera/core.matrix"&gt;core.matrix&lt;/a&gt; at Clojure Conj
this year and wanted to try making my own neural network using the
library. The purpose of this blog is to share my learnings along the
way.&lt;/p&gt;
&lt;h2 id="what-is-a-neural-network"&gt;What is a neural network?&lt;/h2&gt;
&lt;p&gt;A neural network is an approach to machine learning that involves
simulating, (in an idealized way), the way our brains work on a
biological level. There are three layers to neural network: the input
layer, the hidden layers, and the output layer. Each layer consists
of neurons that have a value. In each layer, each neuron is connected to
the neuron in the next layer by a connection strength. To get data
into the neural network, you assign values to the input layer, (values
between 0 and 1). These values are then &amp;ldquo;fed forward&amp;rdquo; to the hidden layer neurons though an algorithm that
relies on the input values and the connection strengths. The values
are finally &amp;ldquo;fed forward&amp;rdquo; in a similar fashion to the output layer.
The &amp;ldquo;learning&amp;rdquo; portion of the neural network comes from &amp;ldquo;training&amp;rdquo; the
network data. The training data consists of a collection of
associated input values and target values. The training process at a
high level looks like this:&lt;/p&gt;</description></item></channel></rss>