This is a slide deck from a presentation, that my colleague Shirin Glander (https://www.slideshare.net/ShirinGlander/) and I did together. As we created our respective parts of the presentation on our own, it is quite easy to figure out who did which part of the presentation as the two slide decks look quite different ... :)
For the sake of simplicity and completeness, I just copied the two slide decks together. As I did the "surrounding" part, I added Shirin's part at the place when she took over and then added my concluding slides at the end. Well, I'm sure, you will figure it out easily ... ;)
The presentation was intended to be an introduction to deep learning (DL) for people who are new to the topic. It starts with some DL success stories as motivation. Then a quick classification and a bit of history follows before the "how" part starts.
The first part of the "how" is some theory of DL, to demystify the topic and explain and connect some of the most important terms on the one hand, but also to give an idea of the broadness of the topic on the other hand.
After that the second part dives deeper into the question how to actually implement DL networks. This part starts with coding it all on your own and then moves on to less coding step by step, depending on where you want to start.
The presentation ends with some pitfalls and challenges that you should have in mind if you want to dive deeper into DL - plus the invitation to become part of it.
As always the voice track of the presentation is missing. I hope that the slides are of some use for you, though.
NLP with Deep Learning Guest Lecture slides by Fatih Mehmet Güler, PragmaCraft. Includes my background on the subject, our projects, the NLP stages and the latest developments.
( Python Training: https://www.edureka.co/python )
This Edureka Python Numpy tutorial (Python Tutorial Blog: https://goo.gl/wd28Zr) explains what exactly is Numpy and how it is better than Lists. It also explains various Numpy operations with examples.
Check out our Python Training Playlist: https://goo.gl/Na1p9G
This tutorial helps you to learn the following topics:
1. What is Numpy?
2. Numpy v/s Lists
3. Numpy Operations
4. Numpy Special Functions
NLP with Deep Learning Guest Lecture slides by Fatih Mehmet Güler, PragmaCraft. Includes my background on the subject, our projects, the NLP stages and the latest developments.
( Python Training: https://www.edureka.co/python )
This Edureka Python Numpy tutorial (Python Tutorial Blog: https://goo.gl/wd28Zr) explains what exactly is Numpy and how it is better than Lists. It also explains various Numpy operations with examples.
Check out our Python Training Playlist: https://goo.gl/Na1p9G
This tutorial helps you to learn the following topics:
1. What is Numpy?
2. Numpy v/s Lists
3. Numpy Operations
4. Numpy Special Functions
With the expansion of big data and analytics, organizations are looking to incorporate data streaming into their business processes to make real-time decisions.
Join this webinar as we guide you through the buzz around data streams:
- Market trends in stream processing
- What is stream processing
- How does stream processing compare to traditional batch processing
- High and low volume streams
- The possibilities of working with data streaming and the benefits it provides to organizations
- The importance of spatial data in streams
Analysis of data in Python with SciPy and pandas, Ubuntu installation, PyCharm configuration, Series, DataFrame, big data, medical data, merging data, groupby, graphing data, iPython using Wakari.io, and analyzing stock prices of US automakers including Ford and Telsa. As presented at Penguicon 2016.
This ppt contains basic idea of deep learning, motivation behind deep learning, technical overview of AI and deep learning, types of learning approaches, basic DL model development steps and at last applications of deep learning including various areas where deep learning can prominently applied.
This presentation explains what data engineering is and describes the data lifecycles phases briefly. I used this presentation during my work as an on-demand instructor at Nooreed.com
What Is Deep Learning? | Introduction to Deep Learning | Deep Learning Tutori...Simplilearn
This Deep Learning Presentation will help you in understanding what is Deep learning, why do we need Deep learning, applications of Deep Learning along with a detailed explanation on Neural Networks and how these Neural Networks work. Deep learning is inspired by the integral function of the human brain specific to artificial neural networks. These networks, which represent the decision-making process of the brain, use complex algorithms that process data in a non-linear way, learning in an unsupervised manner to make choices based on the input. This Deep Learning tutorial is ideal for professionals with beginners to intermediate levels of experience. Now, let us dive deep into this topic and understand what Deep learning actually is.
Below topics are explained in this Deep Learning Presentation:
1. What is Deep Learning?
2. Why do we need Deep Learning?
3. Applications of Deep Learning
4. What is Neural Network?
5. Activation Functions
6. Working of Neural Network
Simplilearn’s Deep Learning course will transform you into an expert in deep learning techniques using TensorFlow, the open-source software library designed to conduct machine learning & deep neural network research. With our deep learning course, you’ll master deep learning and TensorFlow concepts, learn to implement algorithms, build artificial neural networks and traverse layers of data abstraction to understand the power of data and prepare you for your new role as deep learning scientist.
Why Deep Learning?
It is one of the most popular software platforms used for deep learning and contains powerful tools to help you build and implement artificial neural networks.
Advancements in deep learning are being seen in smartphone applications, creating efficiencies in the power grid, driving advancements in healthcare, improving agricultural yields, and helping us find solutions to climate change. With this Tensorflow course, you’ll build expertise in deep learning models, learn to operate TensorFlow to manage neural networks and interpret the results.
You can gain in-depth knowledge of Deep Learning by taking our Deep Learning certification training course. With Simplilearn’s Deep Learning course, you will prepare for a career as a Deep Learning engineer as you master concepts and techniques including supervised and unsupervised learning, mathematical and heuristic aspects, and hands-on modeling to develop algorithms.
There is booming demand for skilled deep learning engineers across a wide range of industries, making this deep learning course with TensorFlow training well-suited for professionals at the intermediate to advanced level of experience. We recommend this deep learning online course particularly for the following professionals:
1. Software engineers
2. Data scientists
3. Data analysts
4. Statisticians with an interest in deep learning
Machine Learning and Real-World ApplicationsMachinePulse
This presentation was created by Ajay, Machine Learning Scientist at MachinePulse, to present at a Meetup on Jan. 30, 2015. These slides provide an overview of widely used machine learning algorithms. The slides conclude with examples of real world applications.
Ajay Ramaseshan, is a Machine Learning Scientist at MachinePulse. He holds a Bachelors degree in Computer Science from NITK, Suratkhal and a Master in Machine Learning and Data Mining from Aalto University School of Science, Finland. He has extensive experience in the machine learning domain and has dealt with various real world problems.
Big Data - The 5 Vs Everyone Must KnowBernard Marr
This slide deck, by Big Data guru Bernard Marr, outlines the 5 Vs of big data. It describes in simple language what big data is, in terms of Volume, Velocity, Variety, Veracity and Value.
A talk presented at IEEE ComSoc workshop on Evolution of Data-centers in the context of 5G.
Discuss about what is edge computing and management issues in Edge Computing
With the expansion of big data and analytics, organizations are looking to incorporate data streaming into their business processes to make real-time decisions.
Join this webinar as we guide you through the buzz around data streams:
- Market trends in stream processing
- What is stream processing
- How does stream processing compare to traditional batch processing
- High and low volume streams
- The possibilities of working with data streaming and the benefits it provides to organizations
- The importance of spatial data in streams
Analysis of data in Python with SciPy and pandas, Ubuntu installation, PyCharm configuration, Series, DataFrame, big data, medical data, merging data, groupby, graphing data, iPython using Wakari.io, and analyzing stock prices of US automakers including Ford and Telsa. As presented at Penguicon 2016.
This ppt contains basic idea of deep learning, motivation behind deep learning, technical overview of AI and deep learning, types of learning approaches, basic DL model development steps and at last applications of deep learning including various areas where deep learning can prominently applied.
This presentation explains what data engineering is and describes the data lifecycles phases briefly. I used this presentation during my work as an on-demand instructor at Nooreed.com
What Is Deep Learning? | Introduction to Deep Learning | Deep Learning Tutori...Simplilearn
This Deep Learning Presentation will help you in understanding what is Deep learning, why do we need Deep learning, applications of Deep Learning along with a detailed explanation on Neural Networks and how these Neural Networks work. Deep learning is inspired by the integral function of the human brain specific to artificial neural networks. These networks, which represent the decision-making process of the brain, use complex algorithms that process data in a non-linear way, learning in an unsupervised manner to make choices based on the input. This Deep Learning tutorial is ideal for professionals with beginners to intermediate levels of experience. Now, let us dive deep into this topic and understand what Deep learning actually is.
Below topics are explained in this Deep Learning Presentation:
1. What is Deep Learning?
2. Why do we need Deep Learning?
3. Applications of Deep Learning
4. What is Neural Network?
5. Activation Functions
6. Working of Neural Network
Simplilearn’s Deep Learning course will transform you into an expert in deep learning techniques using TensorFlow, the open-source software library designed to conduct machine learning & deep neural network research. With our deep learning course, you’ll master deep learning and TensorFlow concepts, learn to implement algorithms, build artificial neural networks and traverse layers of data abstraction to understand the power of data and prepare you for your new role as deep learning scientist.
Why Deep Learning?
It is one of the most popular software platforms used for deep learning and contains powerful tools to help you build and implement artificial neural networks.
Advancements in deep learning are being seen in smartphone applications, creating efficiencies in the power grid, driving advancements in healthcare, improving agricultural yields, and helping us find solutions to climate change. With this Tensorflow course, you’ll build expertise in deep learning models, learn to operate TensorFlow to manage neural networks and interpret the results.
You can gain in-depth knowledge of Deep Learning by taking our Deep Learning certification training course. With Simplilearn’s Deep Learning course, you will prepare for a career as a Deep Learning engineer as you master concepts and techniques including supervised and unsupervised learning, mathematical and heuristic aspects, and hands-on modeling to develop algorithms.
There is booming demand for skilled deep learning engineers across a wide range of industries, making this deep learning course with TensorFlow training well-suited for professionals at the intermediate to advanced level of experience. We recommend this deep learning online course particularly for the following professionals:
1. Software engineers
2. Data scientists
3. Data analysts
4. Statisticians with an interest in deep learning
Machine Learning and Real-World ApplicationsMachinePulse
This presentation was created by Ajay, Machine Learning Scientist at MachinePulse, to present at a Meetup on Jan. 30, 2015. These slides provide an overview of widely used machine learning algorithms. The slides conclude with examples of real world applications.
Ajay Ramaseshan, is a Machine Learning Scientist at MachinePulse. He holds a Bachelors degree in Computer Science from NITK, Suratkhal and a Master in Machine Learning and Data Mining from Aalto University School of Science, Finland. He has extensive experience in the machine learning domain and has dealt with various real world problems.
Big Data - The 5 Vs Everyone Must KnowBernard Marr
This slide deck, by Big Data guru Bernard Marr, outlines the 5 Vs of big data. It describes in simple language what big data is, in terms of Volume, Velocity, Variety, Veracity and Value.
A talk presented at IEEE ComSoc workshop on Evolution of Data-centers in the context of 5G.
Discuss about what is edge computing and management issues in Edge Computing
Separating Hype from Reality in Deep Learning with Sameer FarooquiDatabricks
Deep Learning is all the rage these days, but where does the reality of what Deep Learning can do end and the media hype begin? In this talk, I will dispel common myths about Deep Learning that are not necessarily true and help you decide whether you should practically use Deep Learning in your software stack.
I’ll begin with a technical overview of common neural network architectures like CNNs, RNNs, GANs and their common use cases like computer vision, language understanding or unsupervised machine learning. Then I’ll separate the hype from reality around questions like:
• When should you prefer traditional ML systems like scikit learn or Spark.ML instead of Deep Learning?
• Do you no longer need to do careful feature extraction and standardization if using Deep Learning?
• Do you really need terabytes of data when training neural networks or can you ‘steal’ pre-trained lower layers from public models by using transfer learning?
• How do you decide which activation function (like ReLU, leaky ReLU, ELU, etc) or optimizer (like Momentum, AdaGrad, RMSProp, Adam, etc) to use in your neural network?
• Should you randomly initialize the weights in your network or use more advanced strategies like Xavier or He initialization?
• How easy is it to overfit/overtrain a neural network and what are the common techniques to ovoid overfitting (like l1/l2 regularization, dropout and early stopping)?
V2.0 open power ai virtual university deep learning and ai introductionGanesan Narayanasamy
OpenPOWER AI virtual University's - focus on bringing together industry, government and academic expertise to connect and help shape the AI future .
https://www.youtube.com/channel/UCYLtbUp0AH0ZAv5mNut1Kcg
Deep learning: the future of recommendationsBalázs Hidasi
An informative talk about deep learning and its potential uses in recommender systems. Presented at the Budapest Startup Safary, 21 April, 2016.
The breakthroughs of the last decade in neural network research and the quick increasing of computational power resulted in the revival of deep neural networks and the field focusing on their training: deep learning. Deep learning methods have succeeded in complex tasks where other machine learning methods have failed, such as computer vision and natural language processing. Recently deep learning has began to gain ground in recommender systems as well. This talk introduces deep learning and its applications, with emphasis on how deep learning methods can solve long standing recommendation problems.
Machine learning for IoT - unpacking the blackboxIvo Andreev
Have you ever considered Machine Learning as a black box? It sounds as a kind of magic happening. Although being one among many solutions available, Azure ML has proved to be a great balance between flexibility, usability and affordable price. But how does Azure ML compare with the other ML providers? How to choose the appropriate algorithm? Do you understand the key performance indicators and how to improve the quality of your models? The session is about understanding the black box and using it for IoT workload and not only.
This talk was presented in Startup Master Class 2017 - http://aaiitkblr.org/smc/ 2017 @ Christ College Bangalore. Hosted by IIT Kanpur Alumni Association and co-presented by IIT KGP Alumni Association, IITACB, PanIIT, IIMA and IIMB alumni.
My co-presenter was Biswa Gourav Singh. And contributor was Navin Manaswi.
http://dataconomy.com/2017/04/history-neural-networks/ - timeline for neural networks
This slide deck basically tries to address functional service design not only from a maintainability point of view, but also form an operational point of view. How to spread your business functionality across your service landscape to maximize availability and responsiveness?
It starts with the observation that virtually all system landscapes these days, including cloud-native, are distributed systems. Due to the failure modes of distributed systems every remote communication basically is a predetermined breaking point of your system.
After briefly discussing other options to increase availability and responsiveness the biggest part of the deck discusses the question how a good functional design can positively influence the aforementioned system properties.
Using a very simple eCommerce application as an example, first a typical design is shown and why it is suboptimal in terms of availability and responsiveness. After that, we briefly dive into classical CS papers and see what we can learn from them. We also learn that while the core insights of those papers are mostly timeless, their implementation instructions are not and that we need to update them to our current context.
Then we use the learnt ideas to derive a different functional decomposition approach starting with the system behavior and apply it to our example - which leads to a lot better system behavior in terms of availability and responsiveness. Finally we discuss the most important trade-offs of the different design approach - as every design decision of course also has its downsides ... ;)
As always, the voice track is missing (but afaik there will be a recording released from KanDDDinsky 2018). Still, I hope the slides on their own also offer you a few valuable ideas.
This slide deck is basically my take on the future development of microservices. It is not so much a technological prediction as a tactical prediction.
It starts with taking stock of IT: Where do we come from, where are we right now and what are the trends that (most likely) will shape our future? I try to address those issues from several points of view, not necessarily creating a totally consistent picture of IT (which imo is not possible anyway), but trying to point out the most influential drivers of the past, today and the future.
Then I try to locate microservices in that picture with mutliple angles - where they blend in. Having done that, I try to show how microservices will evolve in the future based on my observations. And in order to complete the journey, based on the anticipated future of microservices, I try to give a few recommendations for microservices developers of today how to prepare for that evolution.
While - as written in the beginning - this is my take on the evolution of microservices and the voice track is missing, I still hope that it is a bit helpful and delivers some food for thought.
The hitchhiker's guide for the confused developerUwe Friedrichsen
This talk is basically a successor of the "DevOps is not enough talk", but with a broader focus.
In the talk, after a short motivation, I try to take stock of the current state of IT from different points of view. After looking at, where we came from and where we are, I add the most important trends I currently see that affect us in IT.
But knowing where we came from, where we are and where we are going to usually is not enough. The key point is using this information - in this talk for evaluating your current position as a software engineer and figuring out your desired future position.
As all the details from the first part of the talk make it hard to do this evaluation, I suggest creating a model (actually a framework) on a reduced detail level that makes the evaluation and planning easier. Defining that framework is the third part of the talk.
Finally, the last part consists of some general recommendations that - based on my understanding - help you as a software engineer to stay ahead of the curve for a while.
While this is extremely much stuff (I really consider to split that plethora of information covered in this talk up in several, single-topic talks) and as always the voice track is missing, I still hope that the slide deck gives you a few ideas worth pondering.
Digitization solutions - A new breed of softwareUwe Friedrichsen
This slide deck is about the challenges we have to face if we deal with digitization solutions. As this term currently is massively overused, I first introduce a very simple definition to define what I mean with "digitization solution" in the context of the presentation.
Afterwards, I list the challenges - at least the most relevant ones - that arise from moving into the digitzation solution domain. Based on that, I try to examine the trends, prerequisites and limitations that you are confronted with from an IT point of view and you better need to adapt to if you are confronted with digitization in your company. Last, but not least, I try to derive some practical hints for us as individuals, how we can prepare for such an environment.
As always, the voice track is missing, but I hope also the slides on their own bear some value for you.
This slide deck tries to give an overview about the consistency options we have today and what we can expect in the future. It's an updated version of slide deck I had uploaded to SlideShare before. Unfortunately, SlideShare removed the option to update a slide deck. Thus, I had to remove the old slide deck and create a new one, even if it actually was just an update.
It starts with examining RDBMS and ACID transactions - especially looking at the fact that "ACID" does not necessarily mean serializablity (what most developers think of if they reason about consistency).
Then it describes the current state of IT affairs concerning Cloud, microservices, NoSQL databases and BASE transactions. It then dives a bit deeper into the topic of polyglot persistence and its challenges by introducing a little "storage dimension model" that may support you in picking the right storage solution that fits your needs. Especially it is pointed out that in the storage world there is no one-size-fits-all solution available and especially that NoSQL databases - definitely having their sweet spots where they shine - are no drop-in replacement for a RDBMS.
Afterwards, BASE transactions are examined in more detail - especially the fact that their trade-off for providing us with better availability and scalability is a very hard programming model. To underline that point the typical types of inconsistencies that you often will see with BASE transactions are sketched on what you need to do on the application level in order to cope with them.
In the third section, a peek into the future is made by looking at some current research results that will eventually find their way into commercial application development. The core observation is that even in highly available systems there are a lot of options regarding consistency. Yet, most of those options require to reason about consistency explicitly on the application level and no longer solely on the read/write level of the underlying data stores - including building explicit consistency support into the application.
In the last section, some recommendation for our daily work are given that can be derived from the former sections.
As always the voice track is missing, but hopefully it will give you a few helpful pointers, though. Especially, at the end a lot of references to computer science papers are included that this slide deck is based on.
This is basically a "lessons learned" talk. While dealing with resilient software design for several years meanwhile, I realized along the way that implementing a specific pattern like timeout detection, circuit breaker, back-pressure, etc. is the smallest of the challenges.
As so often in software development, the actual pitfalls that keep you from being successful with your project - here, creating a robust application - are not to be found in the area of creating code. Based on my experiences, the actual pitfalls are to be found in areas that are at best loosely related to resilient software design.
In this talk, I discuss some of those pitfalls that I have experienced more than once along my way. It starts with not understanding the goals of resilient software design, continues from a lack of understanding the characteristics of distributed system, over missing required feedback loops and deficiencies in functional design, to not understanding the trade-offs of applying resilience patterns, and ends with the problem of our continuous collective insight loss.
The main objective of the talk is to sensitize for the pitfalls. Wherever possible I also added some suggestions how to deal with the topics. Unfortunately, some topics neither have an obvious nor a simple solutions - at least none that I would know about ...
As always the voice track is missing and thus a huge part of the content of the talk. Yet, I hope the slides in themselves are of some use for you and offer some helpful ideas and pointers.
Based on my observations, in IT we suffer from continuous collective amnesia and we are even proud of it.
For at least 50 years meanwhile, we struggle how to build systems, that are easy to understand, to maintain, to change and to operate in a reliable way. Each time we hit the wall again, we start to look for a new silver bullet on the horizon, strongly believing that it will solve the problem for good.
The key word is "new": "New" is good in our community, while "old" is bad, worthless, crap. We suffer from youthism, not only in recruiting, but in all areas. This way we discard any "old" knowledge, no matter if it is valuable or not. We separate by age, not by value.
Additionally we continuously lose our collective memory with every new generation that leaves university as they are also taught not to value anything old and instead only look for the new, shiny stuff.
While not all old knowledge is worth being preserved, admittedly, there is still a lot of valuable old knowledge available, offering answers to the problems that we face today - creating maintainable and reliable systems, dealing with distribution and tackling complexity, just to name a few of the challenges.
This presentation is a journey through some (very) old computer science papers that contain a lot of very valuable knowledge regarding the problems we face today. For each of the papers, some of the key ideas are presented and how they address our current challenges.
Of course, the voice track is missing and there are a lot more papers that would be worth being mentioned in this presentation. Still, I hope that also the slides alone will be of some value for you - and convince you a bit that not everything "old" in IT is automatically worthless ... ;)
In this slide deck I try to explore the meaning of the often misinterpreted sentence "You build it, you run it". Starting with its origin in a 2006 interview with Werner Vogels and a short description of the misinterpretation of that phrase that can be seen quite often these days in companies that try to pick up concepts like DevOps without really getting the idea behind it, I then start a bit longer journey.
It starts with the history and evolution of markets and IT. Based on that I dive deeper into the effects of uncertainty which these days is often predominant for companies facing narrow and highly dynamic markets. I try to approach from a financial point of view as well as from a risk management point of view (yes, even if we have become agile, managing risk and financial aspects have not gone away).
The basic result is that we need to go faster (in terms of cycle times) without compromising quality. I also add a quick litmus test to figure out where your own company currently is located as reality never is as simple as a slide deck - to avoid turning a thought model that should support reasoning into a dogma.
Having the task set and understanding that IT must support going faster without compromising quality, I look at DevOps as it targets exactly the same goal. After a short explanation of what DevOps actually means (we face a perfect confusion of ideas when talking about DevOps) and what the effects are if you do it seriously, I focus on the effects for the process organization.
The traditional process organization - while usually being set up nicely for cost efficiency - is very poor in terms of cycle times. In order to shorten cycle times those organization will eventually become cross-functional, autonomous teams with end-to-end responsibility. And while those teams have all skills and the full authority for all their activities, they also need to take over the full responsibility for their actions - their is no one left to blame ;)
And this naturally leads to "(You decide it,) you build it, you run it" which in the end is a required organizational prerequisite for going fast in a DevOps way.
There is a lot left out in the slides that would also be worth talking about (after all it is just a 60 min talk) and of course the voice track is missing, but I still hope that those slides are of some value for you.
This slide deck is basically an extended and updated version of the "Microservices - stress-free and without increased heart-attack risk" slide deck - yet quite a lot of extensions and updates.
The deck is organized in three parts: Why, What and How.
The first part addresses the question if and when you should use microservices at all. It tries to create a bigger picture by explaining changing (business) markets and a changing role of IT and fits microservices into that picture. When looking at this picture it also becomes clear that microservices always should accompanied by other measures like DevOps, Cloud and some more if you really want to leverage its benefits. Otherwise you usually only get the downsides of microservices with harvesting their benefits.
The second part revisits the famous blog post from James Lewis and Martin Fowler, using it to explain what characteristics the microservice architecural style has. It turns out that this post contains quite a lot of information and that quite often only a subset of the characteristics get implemented.
The third part, the "How" dives deeper into the challenges and pitfalls that you usually encounter if you decide to adopt microservices. While of course not being complete and not being a perfect guide that makes everything easy, it should at least help you tho avoid the most common problems and pitfalls.
As always the voice track is missing which contains most of the information (it is a 90 min talk after all), but hopefully also the slides alone contain some helpful information.
This slide deck addresses the importance of proper functional design for creating resilient distributed systems (not only, but also microservice-based systems).
It starts by explaining the pitfall that many developers fall into when getting started with resilience: Quite often the effects of the fundamentals, i.e., creating bulkheads and choosing the communication paradigm, on system robustness at runtime are heavily underrated. Instead, the pure technical measures like circuit breakers, backpressure, etc. are often overestimated.
Unfortunately, all technical measures will not help to create a robust system if the functional design leads to highly coupled services where the availability of one service functionally totally depends on the availability of another service. The same is true if you need to call many services that all need to be available to answer a client request.
To make it worse, most of the wide-spread design approaches like functional decomposition, DRY (don't repeat yourself), design for re-use or layered architecture exactly lead to those problems, i.e., they are not suitable for designing distributed systems.
This slide deck does not offer any silver bullets to solve the problem (and actually I believe there is no silver bullet), but at least a few guiding principles. Additionally, it shows how the choice of the communication paradigm influences the bulkhead design and this way creates more options to create a good service design that also supports resiliency on a functional level.
As always this slide deck is without the voice track, i.e., most of the information is missing. But I hope that the slides on their own also provide some helpful hints.
Remark: As the "dismiss reusability" slide tends to get quite some attention, one more remark about that slide: On the voice track I usually add "If you find something that is worth being made reusable, i.e., that it satisfies the commercial constraints of Fred Brooks 'Rule of 9' (see https://blog.codecentric.de/en/2015/10/the-broken-promise-of-re-use/ for details), do not put it in a service. Instead create a library and put the functionality in there. And make sure that changes to the library do not mean that all users have to upgrade at the same time, but that any library user can update whenever it fits the user's schedule. Otherwise, you would have introduced tight coupling through the back door again."
In this talk, I address two topics.
The first topic is the "one size fits all" dogma that we see quite often in IT. I try to explain, why we do it but also what the pitfalls are and how oversimplified solution spaces lead to the same kind of accidental complexity when trying to solve a given business problem as overly complex solution spaces.
The second and core topic is the influence that a communication paradigm you use has on your functional design. Based on the observation that synchronous request/response in all its flavors is the usually used "one size fits all" communication paradigm, I use a real-life example to demonstrate how two different communication paradigms (synchronous request/response and asynchronous event-based communication) can lead to very different functional service designs - and that synchronous request/response not necessarily leads to the more appropriate functional design.
The bottom line of the talk is that you should not give up your design options prematurely in order to be able to find the best problem-solution fit and that the choice of the communication paradigm is a more important options than most people usually think it is.
As always the voice track is missing and therefore quite a bit of the information (or probably most of the information) contained in the talk. But hopefully the slides still give you some useful pointers.
This is the slide deck of a keynote I gave at Java Forum Nord 2016.
I started with some of the contradictory requirements, developers find themselves often confronted with and the question, if there is a bigger context that we can use to make sense of it.
Then I did a bit of "time-traveling", explaining where we came from and how business and IT have evolved over time. The core finding was that we find ourselves in the middle of a revolution that is going on (not only) in IT.
The last part were some recommendations how an IT developer can at least reduce the risk to become "revolution roadkill".
As always most of the content was on the voice track. But maybe the slides are still a bit helpful on their own.
The talk belonging to this slide deck is basically a "sequel" of the "Patterns of resilience" talk. It briefly repeats a few core statements of the previous talk and then starts to complete the picture.
First, it creates a more complete pattern taxonomy and locates the taxonomy of the previous talk in it. Then, it repeats a few of the patterns of the first talk concerning core architectural patterns and error detection patterns, enriching them with some additional information.
After that the core part of this talk starts: The error recovery and error mitigation patterns. The talk presents several well known and not so well known patterns from those two domains, partially augmented with code examples. Then after, briefly touching fault treatment patterns, some more patterns of the error prevention domain are presented.
The talk concludes with a small guideline, how to identify the appropriate pattern set for a concrete situation.
As always, the voice track and therefore a lot of information is missing in this slide deck. Yet, I hope that it provides a few helpful pointers.
DevOps is not enough - Embedding DevOps in a broader contextUwe Friedrichsen
As the subtitle says, this talk tries to embed DevOps in a broader context. Therefore first briefly is sketched, how the state of IT is perceived by many people in IT. Additionally, DevOps is briefly defined by explaining the three ways as they were described in the book "The Phoenix Project".
After this short introduction the claim of the title is picked up: "Why is DevOps not enough?". In order to explain this claim, the history of economic markets and of IT are briefly explained. The bottomline is that almost all markets supported by IT have drastically changed in the years since IT became relevant for companies. Additionally, IT itself has changed dramatically in this period of time. Therefore, most of the common knowledge and best practices, we stick to in IT became counter-productive meanwhile because they solve a completely different problem, i.e., the problems of the times when the markets and IT itself were totally different.
The conclusion from the short examination of history is that we basically have to re-think IT as a whole, which is discussed briefly in the next section of the talk. This section first has a look at the new drivers that inflict change on IT. Then it derives the new goals of IT and shows some of the building blocks.
Having this new idea of IT at hand, the role of DevOps in it is finally considered. Starting with DevOps and its continuous pursuit of shortening cycle times in order to optimize outcome, DevOps can be used to drive the change of IT. This is exemplarily shown by starting with DevOps and then see, which question arise from that and what solutions it leads to. In the end of the example, many of the building blocks of the new IT are in place - just by starting with DevOps and continuously improving.
This is a very dense talk covering a lot of ground in order to lead to the final observation that DevOps can (and should) be used to drive the required change of IT and many detail have been left out. Also the voice track is missing of course, but I still hope that it provides you with some useful information.
This slide deck is about the production-readiness of software. First it explains why production-ready is more important than just feature-complete.
Then it takes a quick detour to DevOps. It explains the core ideas of DevOps and how this talks relates to the concepts of DevOps (by simulating the feedback loop from ops to dev while the wall between dev and ops still exists).
After this detour the needs of the administrators from the ops department are briefly described and the challenges that arise from that for developers who want to provide production-ready software.
Based on those challenges a selection of design principles are described (mostly in terms of topics to take care of in the design and implementation process). While not being complete by far, taking care of the topics described on these slides are a huge step towards production-ready software based on my experience.
Of course all the information from the voice track is missing, it is slides only. Even though the slides just carry a fraction of the information, I hope they will still contain some good pointers for you that help you to create better production-ready software.
This slide deck dives a bit in history to understand where IT comes from, where we are now and why we are there and what our options are. It starts with exploring the paradigms of the markets companies live in, travels through matching organizational approaches and finally looks at the history and current state of IT.
Based on that and after a quick look at Conway's law the market paradigms and organizational approaches are evaluated with respect to the drivers they imply on IT in general and architecture particularly.
And after all that foreplay (which is necessary to really understand where we are and what the forces are) several architectural styles and technologies are located on the scale that the market paradigms and organizational approaches span. This way sort of an "architectural fitness detector" is provided which helps to make architectural choices based on needs instead of hypes or habits (which are way to often the choice drivers).
The slide deck then finishes up with a few mismatches that are seen quite often in reality and it can be seen how the distance between architectural choices on the presented scale can be used to quickly determine potential mismatches.
As always the voice track is missing but I hope that the slides are still of some help for you.
Conway's law revisited - Architectures for an effective ITUwe Friedrichsen
This session is sort of a journey from the change drivers that affect today's IT to ways to respond to them in the architecture.
It starts with the business and technological drivers that force IT into change. After briefly sketching the big picture for IT as a whole, it focuses on the drivers and requirements that can be derived for architecture from the IT change drivers.
After carving out the architectural requirements, those are mapped to some trending topics. Based on the mapping results, it becomes obvious that there is no silver bullet (we all know that but this doesn't keep us from hoping that there still is one).
It is required to combine some ideas and concepts to a joint architectural style that becomes more than just the sum of its parts - and that's the last part of the story: Describing an architectural style that helps addressing the IT change drivers shown in the first part.
As a side note, at the end an idea is shown how EAM could fit into the picture laid out by the slides.
As always, many details are only on the voice track - and as always, sorry about that! But I hope that the slides still contain some ideas which are valuable for you.
Microservices - stress-free and without increased heart attack riskUwe Friedrichsen
This is a slide deck belonging to a talk in which I talk about the challenges with µservices in general and provide a few ideas how to avoid the worst pitfalls.
The talk starts with a short explanation why µservice are always hard (yes, the title of the presentation is sort of an oxymoron) and when and when not to choose µservices.
After that introduction I provide a few ideas which from my experience help to get around the worst problems and pitfalls with µservices. As the ideas are from very different topic areas I organized them according to the software production chain starting with design hints and ending with resilience hints (a pure production related topic).
As always the voice track is missing but I hope that also the slides in themselves will give you a few helpful hints.
In this slide deck, I first describe what resilience is, what it is about, why it is important and how it is different from traditional stability approaches.
After that introductory part the main part is a "small" pattern language which is organized around isolation, the typical starting point of resilient software design. I used quotation marks for "small" as even this subset of a complete resilience pattern language still consists of around 20 patterns.
All the patterns are briefly described and for some of the patterns I added a bit of detail, but as this is a slide deck, the voice track - as usual - is missing. Also this pattern language is still sort of work in progress, i.e., it has not yet settled and some details are still missing. Yet I think (or at least hope), that the slides might contain a few useful insights for you.
Modern times - architectures for a Next Generation of ITUwe Friedrichsen
In this presentation I focus on the architectural aspect of the next generation of enterprise IT topic I already covered in some other presentations.
The slide deck starts with a quick motivation. It describes the external drivers that require traditional enterprise IT to change. Based on these drivers, the drivers and requirements for an architecture that supports the external drivers are derived.
The second major part of the slide deck then examines some of today's IT hype topics and evaluates them with respect to the architectural requirements derived before. Be aware that the evaluation partially is hard to understand without the voice track. Actually, at some places the explanations on the voice track are more important than the evaluations themselves. Thus, please do not take them too literally.
The last major part then tries to sketch a possible architectural style that suits the given requirements. Again, the rationale for picking the respective elements are on the voice track, and it is just one possible style. There are for sure more styles available that suit the needs.
Yet I think, the style described makes clear that the upcoming enterprise architectural styles are quite different from the styles that were predominant in the last 10 or 15 years and makes clear that we all have to face new challenges - not only on the architectural level.
Sorry again that the voice track is missing. Yet I think, that the presentation provides some helpful ideas even without the voice.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
18. Traditional AI
Focus on problems that are ...
• ... hard for humans
• ... straightforward for computers
• ... can be formally described
Deep Learning
Focus on problems that are ...
• ... intuitive for humans
• ... difficult for computers
(hard to be described formally)
• ... best learnt from experience
20. General evolution
• Two opposed forces
• Recreation of biological neural processing
• Abstract mathematical models (mostly linear algebra)
• Results in different models and algorithms
• No clear winner yet
21. Cybernetics (ca. 1940 - 1960)
• ADALINE, Perceptron
• Linear models, typically no hidden layers
• Stochastic Gradient Descent (SGD)
• Limited applicability
• E.g., ADALINE could not learn XOR
• Resulted in “First winter of ANN” (Artificial Neural Networks)
22. Connectionism (ca. 1980 - 1990)
• Neocognitron
• Non-linear models, distributed feature representation
• Backpropagation
• Typically 1, rarely more hidden layers
• First approaches of sequence modeling
• LSTM (Long short-term memory) in 1997
• Unrealistic expectations nurtured by ventures
• Resulted in “Second winter of ANN”
23. Deep Learning (ca. 2006 -)
• Improved algorithms, advanced computing power
• Enabled training much larger and deeper networks
• Enabled training much larger data sets
• Typically several to many hidden layers
• Overcame the “feature extraction dilemma”
25. Deep Learning application areas
• Classification (incl. missing inputs)
• Regression (value prediction)
• Function prediction
• Density estimation
• Structured output (e.g., translation)
• Anomaly detection
• Synthesis and sampling
• Denoising
• Compression (dimension reduction)
• ...
26. How does Deep Learning work?
A first (scientifically inspired) approach
27. „A computer program is said to learn
• from experience E
• with respect to some class of tasks T
• and performance measure P
if its performance at tasks in T,
as measured by P,
improves with experience E.”
-- T. Mitchell, Machine Learning, p. 2, McGraw Hill (1997)
Supervised learning,
unsupervised learning,
reinforcement learning, ...
Too difficult to solve
with fixed programs
designed by humans
Accuracy vs. error rate,
training vs. test set, ...
36. Neuron
• Design inspired by biological neurons
• One or more inputs
• Processing (and state storage) unit
• One or more outputs
• In practice often implemented as tensor transformations
• Relevance of internal state depends on network type
• Usually negligible for feed-forward networks
• Usually relevant for recurrent networks
Neuron
Processing
(+ State)
Output(s)
Input(s)
...
...
38. Layer
• Neurons typically organized in layers
• Input and output layer as default
• Optionally one or more hidden layer
• Layer layout can have 1-n dimensions
• Neurons in different layers can have different properties
• Different layers responsible for different (sub-)tasks
Output layer
Input layer
...
N
1
2
Hidden layer(s)
...
40. Connection
• Usually connect input and output tensor in a 1:1 manner
• Connect between layers (output layer N-1 à input layer N)
• Layers can be fully or partially (sparsely) connected
• RNNs also have backward and/or self connections
• Some networks have connections between neurons
of the same layer (e.g., Hopfield nets, Boltzmann machines)
Input tensor(s)
Output tensor(s)
42. Weight
• (Logically) augments a connection
• Used to amplify or dampen a signal sent over a connection
• The actual “memory” of the network
• The “right” values of the weights are learned during training
• Can also be used to introduce a bias for a neuron
• By connecting it to an extra neuron that constantly emits 1
W
Weight
44. Input tensor(s)
Output tensor(s)
Step 1
• For each neuron of input layer
• Copy resp. input tensor’s value to neuron’s input
• Calculate state/output using activation function
(typically linear function, passing value through)
Step 2-N
• For each hidden layer and output layer in their order
• For each neuron of the layer
• Calculate weighted sum on inputs
• Calculate state/output using activation function
(see examples later)
Final step
• For each neuron of output layer
• Copy neuron’s output to resp. output tensor’s value
45. Input tensor(s)
Output tensor(s)
Step 1
Final step
Step 2-N
• Default update procedure (most widespread)
• All neuron per layer in parallel
• Different update procedures exist
• E.g., some Hopfield net implementations
randomly pick neurons for update
53. Hyperparameter
• Influence network and algorithm behavior
• Often influence model capacity
• Not learned, but usually manually optimized
• Currently quite some research interest in
automatic hyperparameter optimization
Examples
• Number of hidden layers
• Number of hidden units
• Learning rate
• Number of clusters
• Weight decay coefficient
• Convolution kernel width
• ...
57. Cost function (a.k.a. loss function)
• Determines distance from optimal performance
• Mean squared error as simple (and widespread) example
58. Cost function (a.k.a. loss function)
• Determines distance from optimal performance
• Mean squared error as simple (and widespread) example
• Often augmented with regularization term
for better generalization (see challenges)
61. Stochastic gradient descent
• Direct calculation of minimum often not feasible
• Instead stepwise “descent” using the gradient
à Gradient descent
62. Stochastic gradient descent
• Direct calculation of minimum often not feasible
• Instead stepwise “descent” using the gradient
à Gradient descent
• Not feasible for large training sets
• Use (small) random sample of training set per iteration
à Stochastic gradient descent (SGD)
66. Backpropagation
• Procedure to calculate new weights based on loss function
Depends on
cost function
Depends on
activation function
Depends on
input calculation
67. Backpropagation
• Procedure to calculate new weights based on loss function
• Usually “back-propagated” layer-wise
• Most widespread optimization procedure
Depends on
cost function
Depends on
activation function
Depends on
input calculation
70. Data set
• Consists of examples (a.k.a. data points)
• Example always contains input tensor
• Sometimes also contains expected output tensor
(depending on training type)
• Data set usually split up in several parts
• Training set – optimize accuracy (always used)
• Test set – test generalization (often used)
• Validation set – tune hyperparameters (sometimes used)
73. Supervised learning
• Typically learns from a large, yet finite set of examples
• Examples consist of input and output tensor
• Output tensor describes desired output
• Output tensor also called label or target
• Typical application areas
• Classification
• Regression and function prediction
• Structured output problems
75. Unsupervised learning
• Typically learns from a large, yet finite set of examples
• Examples consist of input tensor only
• Learning algorithm tries to learn useful properties of the data
• Requires different type of cost functions
• Typical application areas
• Clustering, density estimations
• Denoising, compression (dimension reduction)
• Synthesis and sampling
77. Reinforcement learning
• Continuously optimizes interaction with an environment
based on reward-based learning
Agent
Environment
State t
Reward t
State t+1
Reward t+1
Action t
78. Reinforcement learning
• Continuously optimizes interaction with an environment
based on reward-based learning
• Goal is selection of action with highest expected reward
• Takes (discounted) expected future rewards into account
• Labeling of examples replaced by reward function
• Can continuously learn à data set can be infinite
• Typically used to solve complex tasks in (increasingly)
complex environments with (very) limited feedback
81. Underfitting and Overfitting
• Training error describes how good training data is learnt
• Test error is an indicator for generalization capability
• Core challenge for all machine learning type algorithms
1. Make training error small
2. Make gap between training and test error small
• Underfitting is the violation of #1
• Overfitting is the violation of #2
83. Underfitting and Overfitting
• Under- and overfitting influenced by model capacity
• Too low capacity usually leads to underfitting
• Too high capacity usually leads to overfitting
• Finding the right capacity is a challenge
85. Regularization
• Regularization is a modification applied to learning algorithm
• to reduce the generalization error
• but not the training error
• Weight decay is a typical regularization measure
87. Transfer learning
• How to transfer insights between related tasks
• E.g., is it possible to transfer knowledge gained while training
to recognize cars on the problem of recognizing trucks?
• General machine learning problem
• Subject of many research activities
92. Convolutional neural network (CNN)
• Special type of MLP for image processing
• Connects convolutional neuron only with receptive field
• Advantages
• Less computing
power required
• Often even better
recognition rates
• Inspired by organization of visual cortex
Image source: https://deeplearning4j.org
94. Recurrent neural network (RNN)
• Implements internal feedback loops
• Provides a temporal memory
• Typically used for
• Speech recognition
• Text recognition
• Time series processing
Image source: https://deeplearning4j.org
96. Long short-term memory (LSTM)
• Special type of RNN
• Uses special LSTM units
• Can implement very long-term memory
while avoiding the vanishing/exploding
gradient problem
• Same application areas as RNN
Image source: https://deeplearning4j.org
98. Autoencoder
• Special type of MLP
• Reproduces input at output layer
• Consists of encoder and decoder
• Usually configured undercomplete
• Learns efficient feature codings
• Dimension reduction (incl. compression)
• Denoising
• Usually needs pre-training for not only
reconstructing average of training set
Image source: https://deeplearning4j.org
100. Generative adversarial networks (GAN)
• Consists of two (adversarial) networks
• Generator creating fake images
• Discriminator trying to identify
fake images
• Typically used for
• Synthesis and sampling
(e.g., textures in games)
• Structured output with variance (e.g., variations of a design or voice generation)
• Probably best known for creating fake celebrity images
Image source: https://deeplearning4j.org
133. Issues you might face
• Very fast moving research domain
• You need the math. Really!
• How much data do you have?
• GDPR: Can you explain the decision of your network?
• Meta-Learning as the next step
• Monopolization of research and knowledge
135. Wrap-up
• Broad, diverse topic
• Very good library support and more
• Very active research topic
• No free lunch
• You need the math!
à Exciting and important topic – become a part of it!
136. References
• I. Goodfellow, Y. Bengio, A. Courville, ”Deep learning",
MIT press, 2016, also available via https://www.deeplearningbook.org
• C. Perez, “The Deep Learning AI Playbook”,
Intuition Machine Inc., 2017
• F. Chollet, "Deep Learning with Python",
Manning Publications, 2017
• OpenAI, https://openai.com
• Keras, https://keras.io
• Deep Learning for Java, https://deeplearning4j.org/index.html
• Deep Learning (Resource site), http://deeplearning.net