<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI on Srikanth Cherla</title><link>https://cherla.org/tags/ai/</link><description>Recent content in AI on Srikanth Cherla</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 27 May 2026 23:34:21 +0200</lastBuildDate><atom:link href="https://cherla.org/tags/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>Completed Generative AI with LLMs Course on Coursera</title><link>https://cherla.org/posts/2024/08/completed-generative-ai-with-llms-course-on-coursera/</link><pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2024/08/completed-generative-ai-with-llms-course-on-coursera/</guid><description>&lt;p&gt;I recently completed a Coursera foundation course on Large Language Models — my first structured learning in a while. The gap was mostly down to becoming a parent, which makes carving out time for professional development and blogging considerably harder.&lt;/p&gt;
&lt;p&gt;Since April 2023 I&amp;rsquo;ve been working on &lt;a href="https://unity.com/products/muse"&gt;Muse&lt;/a&gt; at Unity — an LLM-driven AI assistant for Unity developers that has evolved from a web-based chat interface into a deeply integrated Editor tool capable of analysing your project and performing contextual tasks.&lt;/p&gt;</description></item><item><title>Unity Muse at the Microsoft Build Conference</title><link>https://cherla.org/posts/2024/05/unity-muse-at-the-microsoft-build-conference/</link><pubDate>Sat, 25 May 2024 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2024/05/unity-muse-at-the-microsoft-build-conference/</guid><description>&lt;p&gt;I&amp;rsquo;ve been building Unity&amp;rsquo;s AI assistant — Muse — since April 2023, and it recently got a moment in the spotlight: Microsoft featured it at their Build conference as a customer success story.&lt;/p&gt;
&lt;p&gt;A film crew came to Copenhagen to record the team, and the resulting video was shown during a live Muse demonstration at the conference. I&amp;rsquo;m in it, talking about both the product and my contributions to it. A good reminder of how far the project has come from its early days as a simple chat interface.&lt;/p&gt;</description></item><item><title>Completed Practical Reinforcement Learning on Coursera</title><link>https://cherla.org/posts/2021/05/completed-practical-reinforcement-learning-on-coursera/</link><pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2021/05/completed-practical-reinforcement-learning-on-coursera/</guid><description>&lt;p&gt;Reinforcement Learning is one of the most interesting topics in computer science and ML. I started with the canonical textbook — &lt;em&gt;Reinforcement Learning: An Introduction&lt;/em&gt; by Sutton &amp;amp; Barto — which is a fantastic read, though some topics took multiple passes to properly absorb.&lt;/p&gt;
&lt;p&gt;After working through Dynamic Programming, Monte-Carlo methods, and Temporal Difference learning, I wanted practical experience and turned to Coursera&amp;rsquo;s Practical Reinforcement Learning course.&lt;/p&gt;
&lt;p&gt;Honest review: it was frustrating. The course tried to cover too much ground too quickly, assignment instructions were minimal and error feedback sparse, and by the halfway point I was no longer enjoying it. I pushed through to the end.&lt;/p&gt;</description></item><item><title>Completed Recommender Systems Specialisation on Coursera</title><link>https://cherla.org/posts/2019/04/completed-recommender-systems-specialisation-on-coursera/</link><pubDate>Thu, 25 Apr 2019 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2019/04/completed-recommender-systems-specialisation-on-coursera/</guid><description>&lt;p&gt;After leaving Jukedeck I completed the four-course Recommender Systems specialisation from the University of Minnesota on Coursera:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Introduction to Recommender Systems: Non-personalised and Content-based&lt;/li&gt;
&lt;li&gt;Nearest Neighbour Collaborative Filtering&lt;/li&gt;
&lt;li&gt;Recommender Systems: Evaluation and Metrics&lt;/li&gt;
&lt;li&gt;Matrix Factorisation and Advanced Techniques&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Completed in about a month at a leisurely pace. Very well-taught — the coursework used spreadsheet-based implementations to make the algorithms tangible before diving into code. Content-based filtering, item-item and user-user collaborative filtering, matrix factorisation — all well covered.&lt;/p&gt;</description></item><item><title>TensorFlow Tip: Pretrain and Retrain</title><link>https://cherla.org/posts/2018/04/tensorflow-tip-pretrain-and-retrain/</link><pubDate>Sun, 22 Apr 2018 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2018/04/tensorflow-tip-pretrain-and-retrain/</guid><description>&lt;p&gt;I recently ran into a situation where I had to initially train a neural network first on one dataset, save it and then load it up later to train it on a different dataset (or using a different training procedure). I implemented this in Tensorflow and thought I&amp;rsquo;d share a stripped down version of the script here as it could serve as an instructive example on the use of Tensorflow sessions. Note that this is not necessarily the best way of doing this, and it might indeed be simpler to load the original graph and train that graph itself by making its parameters trainable, or something else like that. The script can be found &lt;a href="https://github.com/freakanth/tensorflow-tips/blob/master/pretrain_and_retrain.py"&gt;here&lt;/a&gt;. In the first stage of this script (the pre-training stage) there is only a single graph which contains the randomly initialised and trained model. One might as well avoid explicitly defining a graph as Tensorflow&amp;rsquo;s default graph will be used for this purpose. This model (together with its parameters) is saved to a file and then loaded for the second re-training stage. In this second stage, there are two graphs. The first graph is loaded from the saved file and contains the pre-trained model whose parameters are the ones whose values we wish to assign to those of the second model before training the latter on a different dataset. The parameters of the second model are randomly initialised prior to this assignment step. In order for the assignment to work, I found it necessary to assign parameters across graphs and this could be done by saving the parameters of the first model as &lt;code&gt;numpy&lt;/code&gt; tensors and assigning the values of these &lt;code&gt;numpy&lt;/code&gt; tensors to the right parameters of the second model.&lt;/p&gt;</description></item><item><title>Completed Machine Learning with Big Data on Coursera</title><link>https://cherla.org/posts/2018/03/completed-machine-learning-with-big-data-on-coursera/</link><pubDate>Sat, 17 Mar 2018 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2018/03/completed-machine-learning-with-big-data-on-coursera/</guid><description>&lt;p&gt;Completed UCSD&amp;rsquo;s &lt;em&gt;Machine Learning with Big Data&lt;/em&gt; on Coursera with a 98.9% mark. The ML theory was introductory — a good refresher on Naive Bayes, Decision Trees, and k-Means, but nothing new. The real value was the hands-on introduction to KNIME and Spark ML applied to real datasets.&lt;/p&gt;
&lt;p&gt;Together with the previous course this was more practically focused than the earlier modules in the specialisation, which is what I was after.&lt;/p&gt;</description></item><item><title>The TensorFlow Datasets API for Sequence Data (Code Examples)</title><link>https://cherla.org/posts/2017/12/the-tensorflow-datasets-api-for-sequence-data-code-examples/</link><pubDate>Mon, 18 Dec 2017 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2017/12/the-tensorflow-datasets-api-for-sequence-data-code-examples/</guid><description>&lt;p&gt;When TensorFlow 1.4 was released there were very few fully working examples of the Datasets API for sequence data. Rather than a full tutorial, here are two scripts with explanatory notes.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://github.com/freakanth"&gt;GitHub repository&lt;/a&gt; contains:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;placeholder_vs_iterators.py&lt;/code&gt;&lt;/strong&gt; — Three data input approaches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Traditional placeholder method&lt;/li&gt;
&lt;li&gt;Iterators&lt;/li&gt;
&lt;li&gt;Feedable iterators&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;generator_vs_tfrecord.py&lt;/code&gt;&lt;/strong&gt; — Three methods for iterating through sequence data during training:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generator function with preprocessing (zero-padding, batching)&lt;/li&gt;
&lt;li&gt;Pre-processed data via generator&lt;/li&gt;
&lt;li&gt;TFRecord files using SequenceExample Protocol Buffers (the most Datasets API-dependent approach)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;References: &lt;a href="https://www.tensorflow.org/guide/data"&gt;TF Datasets documentation&lt;/a&gt;, Google Developers blog post on the API.&lt;/p&gt;</description></item><item><title>Completed Andrew Ng's Convolutional Neural Networks on Coursera</title><link>https://cherla.org/posts/2017/12/completed-andrew-ngs-convolutional-neural-networks-on-coursera/</link><pubDate>Sun, 03 Dec 2017 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2017/12/completed-andrew-ngs-convolutional-neural-networks-on-coursera/</guid><description>&lt;p&gt;Completed Andrew Ng&amp;rsquo;s &lt;em&gt;Convolutional Neural Networks&lt;/em&gt; course — the third in his Deep Learning specialisation — with 100%. This was the most genuinely new material for me; I&amp;rsquo;d only skimmed a couple of papers on CNNs and never properly implemented one.&lt;/p&gt;
&lt;p&gt;The course is excellent. Highlights: 1D, 2D, and 3D convolutions explained clearly and in depth; coverage of VGGNet, InceptionNet, and Network-in-Network architectures; applications including object recognition, face recognition, and Neural Style Transfer. The programming assignments were engaging and moderately challenging, and the reading list was valuable.&lt;/p&gt;</description></item><item><title>(Automated) Curriculum Learning</title><link>https://cherla.org/posts/2017/11/automated-curriculum-learning/</link><pubDate>Sat, 18 Nov 2017 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2017/11/automated-curriculum-learning/</guid><description>&lt;p&gt;I&amp;rsquo;ve lately spent some time reading about Curriculum Learning and experimenting with the algorithms described in two of the papers in this domain Bengio, Y., Louradour, J., Collobert, R., &amp;amp; Weston, J. (2009, June). Curriculum learning. In &lt;em&gt;Proceedings of the 26th annual international conference on machine learning&lt;/em&gt; (pp. 41-48). ACM. Graves, A., Bellemare, M. G., Menick, J., Munos, R., &amp;amp; Kavukcuoglu, K. (2017). Automated Curriculum Learning for Neural Networks. &lt;em&gt;arXiv preprint arXiv:1704.03003&lt;/em&gt;. The first of the above can be considered important given how with empirical results supporting Curriculum Learning, it revived the interest among researchers in this technique. The second is one of the recently proposed approaches for Curriculum Learning that I thought would be interesting to understand in greater depth. I&amp;rsquo;ve summarised my thoughts on these in a &lt;a href="https://docs.google.com/presentation/d/1LZEoOG-sCDH4Jsqyy88ufRHObUZeq4GtT29DA4sR6jk/edit?usp=sharing"&gt;short presentation&lt;/a&gt;. I hope to share my code and results not too long from now as well.&lt;/p&gt;</description></item><item><title>Completed Andrew Ng's Improving Deep Neural Networks on Coursera</title><link>https://cherla.org/posts/2017/10/completed-andrew-ngs-improving-deep-neural-networks-on-coursera/</link><pubDate>Sun, 01 Oct 2017 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2017/10/completed-andrew-ngs-improving-deep-neural-networks-on-coursera/</guid><description>&lt;p&gt;Completed Andrew Ng&amp;rsquo;s &lt;em&gt;Improving Deep Neural Networks&lt;/em&gt; — the second in his Deep Learning specialisation — with 100%. Much of the material was familiar from my ML background, but several sections were genuinely valuable: the detailed treatment of optimisation techniques (exponential moving averages, Momentum, RMSProp, Adam), batch normalisation, and dropout.&lt;/p&gt;
&lt;p&gt;On to the Convolutional Neural Networks course next.&lt;/p&gt;
&lt;p&gt;&lt;a href="../../../../files/improving-deep-neural-networks-certificate.pdf"&gt;improving-deep-neural-networks-certificate&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Completed Andrew Ng's Structuring Machine Learning Projects on Coursera</title><link>https://cherla.org/posts/2017/08/completed-andrew-ngs-structuring-machine-learning-projects-on-coursera/</link><pubDate>Mon, 28 Aug 2017 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2017/08/completed-andrew-ngs-structuring-machine-learning-projects-on-coursera/</guid><description>&lt;p&gt;Completed Andrew Ng&amp;rsquo;s &lt;em&gt;Structuring Machine Learning Projects&lt;/em&gt; with 96.7%. Reasonably familiar material given my background, but a few useful insights.&lt;/p&gt;
&lt;p&gt;The lectures on Transfer Learning, Multitask Learning, and End-to-End ML were too brief to be immediately useful — they&amp;rsquo;d need to be followed up with deeper reading. But the practical advice and real-world scenario exercises were valuable, and I wish there were more of them (perhaps as optional material).&lt;/p&gt;
&lt;p&gt;&lt;a href="../../../../files/structuring-machine-learning-projects.pdf"&gt;structuring-machine-learning-projects&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Breaking Down the Differentiable Neural Computer</title><link>https://cherla.org/posts/2017/05/breaking-down-the-differentiable-neural-computer/</link><pubDate>Wed, 24 May 2017 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2017/05/breaking-down-the-differentiable-neural-computer/</guid><description>&lt;p&gt;My PhD work on RNNs for musical sequence prediction got me interested in memory-augmented neural architectures. I spent a couple of weeks working through two key papers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Neural Turing Machine&lt;/strong&gt; — Graves et al., Google DeepMind (&lt;em&gt;arXiv&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Differentiable Neural Computer&lt;/strong&gt; — a more advanced variant published in &lt;em&gt;Nature&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I put together a &lt;a href="https://docs.google.com/"&gt;Google Slides presentation&lt;/a&gt; with my observations and notes. Feedback welcome — let me know if anything needs correcting.&lt;/p&gt;</description></item><item><title>Music and Connectionism</title><link>https://cherla.org/posts/2016/08/music-and-connectionism/</link><pubDate>Mon, 01 Aug 2016 00:00:00 +0000</pubDate><guid>https://cherla.org/posts/2016/08/music-and-connectionism/</guid><description>&lt;p&gt;The many contributions made during the past three decades to computer-assisted analysis and generation of music with the aid of Connectionist architectures can be seen to have occured in two waves, in parallel with developments in Connectionist research itself. During the first wave, the founding principles of Connectionism were introduced (Rumelhart et al., 1986) through the idea of Parallel Distributed Processing according to which mental phenomena occur as a result of simultaneous interactions between simple elementary processing units, as opposed to the then prevailing notion of Sequential Symbolic Processing which explained the same phenomena in terms of sequential interactions between complex goal-specific units. Its significance is largely theoretical, with a few experimental and empirical results to support the feasibility of the theory. Following several years of reduced interest, the second wave further strengthened the claims made by its precursor through a series of successful high-impact real-world applications. This was owing to both the proposal of newer theories, and the availability of greater computational power and vast amounts of data that enabled the demonstration of the efficacy of these theories nearly two decades on (Bengio, 2009; LeCun et al.,2012). The innovations that came about as a result of these two phases trickled down to several application domains (Krizhevsky et al., 2012; Hinton et al., 2012;Collobert et al., 2011) of which music is one (Todd and Loy, 1991; Griffith and Todd,1999; Humphrey et al., 2012). This section reviews notable contributions among the many that demonstrated the application of connectionism to symbolic music modelling during these two waves in order to present a historical perspective together with an overview of the techniques employed.&lt;/p&gt;</description></item></channel></rss>