diff --git a/doc/pub/Intro2Course/html/._Intro2Course-bs012.html b/doc/pub/Intro2Course/html/._Intro2Course-bs012.html new file mode 100644 index 000000000..5b48ea678 --- /dev/null +++ b/doc/pub/Intro2Course/html/._Intro2Course-bs012.html @@ -0,0 +1,175 @@ + + +
+ + + + + +
+ + + + +
+The link here https://www.mn.uio.no/english/research/about/centre-focus/innovation/data-science/studies/ gives an excellent overview of courses on Machine learning at UiO. + +
+ +
+ + +
+ + + + + + +
+ + +
+ + +
+
+
+During the last two decades there has been a swift and amazing +development of Machine Learning techniques and algorithms that impact +many areas in not only Science and Technology but also the Humanities, +Social Sciences, Medicine, Law, indeed, almost all possible +disciplines. The applications are incredibly many, from self-driving +cars to solving high-dimensional differential equations or complicated +quantum mechanical many-body problems. Machine Learning is perceived +by many as one of the main disruptive techniques nowadays. + +
+Statistics, Data science and Machine Learning form important +fields of research in modern science. They describe how to learn and +make predictions from data, as well as allowing us to extract +important correlations about physical process and the underlying laws +of motion in large data sets. The latter, big data sets, appear +frequently in essentially all disciplines, from the traditional +Science, Technology, Mathematics and Engineering fields to Life +Science, Law, education research, the Humanities and the Social +Sciences. + +
+It has become more +and more common to see research projects on big data in for example +the Social Sciences where extracting patterns from complicated survey +data is one of many research directions. Having a solid grasp of data +analysis and machine learning is thus becoming central to scientific +computing in many fields, and competences and skills within the fields +of machine learning and scientific computing are nowadays strongly +requested by many potential employers. The latter cannot be +overstated, familiarity with machine learning has almost become a +prerequisite for many of the most exciting employment opportunities, +whether they are in bioinformatics, life science, physics or finance, +in the private or the public sector. This author has had several +students or met students who have been hired recently based on their +skills and competences in scientific computing and data science, often +with marginal knowledge of machine learning. + +
+Machine learning is a subfield of computer science, and is closely +related to computational statistics. It evolved from the study of +pattern recognition in artificial intelligence (AI) research, and has +made contributions to AI tasks like computer vision, natural language +processing and speech recognition. Many of the methods we will study are also +strongly rooted in basic mathematics and physics research. + +
+Ideally, machine learning represents the science of giving computers +the ability to learn without being explicitly programmed. The idea is +that there exist generic algorithms which can be used to find patterns +in a broad class of data sets without having to write code +specifically for each problem. The algorithm will build its own logic +based on the data. You should however always keep in mind that +machines and algorithms are to a large extent developed by humans. The +insights and knowledge we have about a specific system, play a central +role when we develop a specific machine learning algorithm. + +
+Machine learning is an extremely rich field, in spite of its young +age. The increases we have seen during the last three decades in +computational capabilities have been followed by developments of +methods and techniques for analyzing and handling large date sets, +relying heavily on statistics, computer science and mathematics. The +field is rather new and developing rapidly. Popular software packages +written in Python for machine learning like +Scikit-learn, +Tensorflow, +PyTorch and Keras, all +freely available at their respective GitHub sites, encompass +communities of developers in the thousands or more. And the number of +code developers and contributors keeps increasing. Not all the +algorithms and methods can be given a rigorous mathematical +justification, opening up thereby large rooms for experimenting and +trial and error and thereby exciting new developments. However, a +solid command of linear algebra, multivariate theory, probability +theory, statistical data analysis, understanding errors and Monte +Carlo methods are central elements in a proper understanding of many +of algorithms and methods we will discuss. + +
+These sets of lectures aim at giving you an overview of central aspects of +statistical data analysis as well as some of the central algorithms +used in machine learning. We will introduce a variety of central +algorithms and methods essential for studies of data analysis and +machine learning. + +
+Hands-on projects and experimenting with data and algorithms plays a central role in +these lectures, and our hope is, through the various +projects and exercises, to expose you to fundamental +research problems in these fields, with the aim to reproduce state of +the art scientific results. You will learn to develop and +structure codes for studying these systems, get acquainted with +computing facilities and learn to handle large scientific projects. A +good scientific and ethical conduct is emphasized throughout the +course. More specifically, you will + +
+We will also cover Monte Carlo methods, Markov chains, well-known +algorithms for sampling stochastic events like the Metropolis-Hastings +and Gibbs sampling methods. An important aspect of all our +calculations is a proper estimation of errors. Here we will also +discuss famous resampling techniques like the blocking, the bootstrapping +and the jackknife methods and the infamous bias-variance tradeoff. + +
+The second part of the material covers several algorithms used in +machine learning. + +
+Ideally, machine learning represents the science of giving computers +the ability to learn without being explicitly programmed. The idea is +that there exist generic algorithms which can be used to find patterns +in a broad class of data sets without having to write code +specifically for each problem. The algorithm will build its own logic +based on the data. You should however always keep in mind that +machines and algorithms are to a large extent developed by humans. The +insights and knowledge we have about a specific system, play a central +role when we develop a specific machine learning algorithm. + +
+Machine learning is an extremely rich field, in spite of its young +age. The increases we have seen during the last decades in +computational capabilities have been followed by developments of +methods and techniques for analyzing and handling large date sets, +relying heavily on statistics, computer science and mathematics. The +field is rather new and developing rapidly. Popular software libraries +written in Python for machine learning like +Scikit-learn, +Tensorflow, +PyTorch and Keras, all +freely available at their respective GitHub sites, encompass +communities of developers in the thousands or more. And the number of +code developers and contributors keeps increasing. + +
+Not all the +algorithms and methods can be given a rigorous mathematical +justification (for example decision trees and random forests), opening up thereby large rooms for experimenting and +trial and error and thereby exciting new developments. However, a +solid command of linear algebra, multivariate theory, probability +theory, statistical data analysis, understanding errors and Monte +Carlo methods are central elements in a proper understanding of many +of the algorithms and methods we will discuss. + +
+The approaches to machine learning are many, but are often split into +two main categories. In supervised learning we know the answer to a +problem, and let the computer deduce the logic behind it. On the other +hand, unsupervised learning is a method for finding patterns and +relationship in data sets without any prior knowledge of the system. +Some authours also operate with a third category, namely +reinforcement learning. This is a paradigm of learning inspired by +behavioral psychology, where learning is achieved by trial-and-error, +solely from rewards and punishment. + +
+Another way to categorize machine learning tasks is to consider the +desired output of a system. Some of the most common tasks are: + +
+ + +
+The methods we cover have three main topics in common, irrespective of +whether we deal with supervised or unsupervised learning. + + +
+At the heart of basically all Machine Learning algorithms we will encounter so-called minimization or optimization algorithms. A large family of such methods are so-called gradient methods. + +
+When you hear phrases like predictions and estimations and +correlations and causations, what do you think of? May be you think +of the difference between classifying new data points and generating +new data points. +Or perhaps you consider that correlations represent some kind of symmetric statements like +if \( A \) is correlated with \( B \), then \( B \) is correlated with +\( A \). Causation on the other hand is directional, that is if \( A \) causes \( B \), \( B \) does not +necessarily cause \( A \). + +
+These concepts are in some sense the difference between machine +learning and statistics. In machine learning and prediction based +tasks, we are often interested in developing algorithms that are +capable of learning patterns from given data in an automated fashion, +and then using these learned patterns to make predictions or +assessments of newly given data. In many cases, our primary concern +is the quality of the predictions or assessments, and we are less +concerned about the underlying patterns that were learned in order +to make these predictions. + +
+In machine learning we normally use a so-called frequentist approach, +where the aim is to make predictions and find correlations. We focus +less on for example extracting a probability distribution function (PDF). The PDF can be +used in turn to make estimations and find causations such as given \( A \) +what is the likelihood of finding \( B \). + +
+In science and engineering we often end up in situations where we want to infer (or learn) a +quantitative model \( M \) for a given set of sample points \( \boldsymbol{X} \in [x_1, x_2,\dots x_N] \). + +
+As we will see repeatedely in these lectures, we could try to fit these data points to a model given by a +straight line, or if we wish to be more sophisticated to a more complex +function. + +
+The reason for inferring such a model is that it +serves many useful purposes. On the one hand, the model can reveal information +encoded in the data or underlying mechanisms from which the data were generated. For instance, we could discover important +corelations that relate interesting physics interpretations. + +
+In addition, it can simplify the representation of the given data set and help +us in making predictions about future data samples. + +
+A first important consideration to keep in mind is that inferring the correct model +for a given data set is an elusive, if not impossible, task. The fundamental difficulty +is that if we are not specific about what we mean by a correct model, there +could easily be many different models that fit the given data set equally well. + +
+The central question is this: what leads us to say that a model is correct or +optimal for a given data set? To make the model inference problem well posed, i.e., +to guarantee that there is a unique optimal model for the given data, we need to +impose additional assumptions or restrictions on the class of models considered. To +this end, we should not be looking for just any model that can describe the data. +Instead, we should look for a model \( M \) that is the best among a restricted class +of models. In addition, to make the model inference problem computationally +tractable, we need to specify how restricted the class of models needs to be. A +common strategy is to start +with the simplest possible class of models that is just necessary to describe the data +or solve the problem at hand. More precisely, the model class should be rich enough +to contain at least one model that can fit the data to a desired accuracy and yet be +restricted enough that it is relatively simple to find the best model for the given data. + +
+Thus, the most popular strategy is to start from the +simplest class of models and increase the complexity of the models only when the +simpler models become inadequate. For instance, if we work with a regression problem to fit a set of sample points, one +may first try the simplest class of models, namely linear models, followed obviously by more complex models. + +
+How to evaluate which model fits best the data is something we will come back to over and over again in these set of lectures. + +
+Python plays nowadays a central role in the development of machine +learning techniques and tools for data analysis. In particular, seen +the wealth of machine learning and data analysis libraries written in +Python, easy to use libraries with immediate visualization(and not the +least impressive galleries of existing examples), the popularity of the +Jupyter notebook framework with the possibility to run R codes or +compiled programs written in C++, and much more made our choice of +programming language for this series of lectures easy. However, +since the focus here is not only on using existing Python libraries such +as Scikit-Learn, Tensorflow and Pytorch, but also on developing your own +algorithms and codes, we will as far as possible present many of these +algorithms either as a Python codes or C++ or Fortran (or other languages) codes. + +
+In most of the cases we will study, we will either generate the data +to analyze ourselves (both for supervised learning and unsupervised +learning) or we will recur again and again to data present in say +Scikit-Learn or Tensorflow. Many of the examples we end up +dealing with are from a privacy and data protection point of view, +rather inoccuous and boring results of numerical +calculations. However, this does not hinder us from developing a sound +ethical attitude to the data we use, how we analyze the data and how +we handle the data. + +
+The most immediate and simplest possible ethical aspects deal with our +approach to the scientific process. Nowadays, with version control +software like Git and various online +repositories like Github, +Gitlab etc, we can easily make our codes +and data sets we have used, freely and easily accessible to a wider +community. This helps us almost automagically in making our science +reproducible. The large open-source development communities involved +in say Scikit-Learn, +Tensorflow, +PyTorch and Keras, are +all excellent examples of this. The codes can be tested and improved +upon continuosly, helping thereby our scientific community at large in +developing data analysis and machine learning tools. It is much +easier today to gain traction and acceptance for making your science +reproducible. From a societal stand, this is an important element +since many of the developers are employees of large public institutions like +universities and research labs. Our fellow taxpayers do deserve to get +something back for their bucks. + +
+However, this more mechanical aspect of the ethics of science (in +particular the reproducibility of scientific results) is something +which is obvious and everybody should do so as part of the dialectics of +science. The fact that many scientists are not willing to share their codes or +data is detrimental to the scientific discourse. + +
+Before we proceed, we should add a disclaimer. Even though +we may dream of computers developing some kind of higher learning +capabilities, at the end (even if the artificial intelligence +community keeps touting our ears full of fancy futuristic avenues), it is we, yes you reading these lines, +who end up constructing and instructing, via various algorithms, the +machine learning approaches. Self-driving cars for example, rely on sofisticated +programs which take into account all possible situations a car can +encounter. In addition, extensive usage of training data from GPS +information, maps etc, are typically fed into the software for +self-driving cars. Adding to this various sensors and cameras that +feed information to the programs, there are zillions of ethical issues +which arise from this. + +
+For self-driving cars, where basically many of the standard machine +learning algorithms discussed here enter into the codes, at a certain +stage we have to make choices. Yes, we , the lads and lasses who wrote +a program for a specific brand of a self-driving car. As an example, +all carmakers have as their utmost priority the security of the +driver and the accompanying passengers. A famous European carmaker, which is +one of the leaders in the market of self-driving cars, had if +statements of the following type: suppose there are two obstacles in +front of you and you cannot avoid to collide with one of them. One of +the obstacles is a monstertruck while the other one is a kindergarten +class trying to cross the road. The self-driving car algo would then +opt for the hitting the small folks instead of the monstertruck, since +the likelihood of surving a collision with our future citizens, is +much higher. + +
+This leads to serious ethical aspects. Why should we opt for such an +option? Who decides and who is entitled to make such choices? Keep in +mind that many of the algorithms you will encounter in this series of +lectures or hear about later, are indeed based on simple programming +instructions. And you are very likely to be one of the people who may +end up writing such a code. Thus, developing a sound ethical attitude +to what we do, an approach well beyond the simple mechanistic one of +making our science available and reproducible, is much needed. The +example of the self-driving cars is just one of infinitely many cases +where we have to make choices. When you analyze data on economic +inequalities, who guarantees that you are not weighting some data in a +particular way, perhaps because you dearly want a specific conclusion +which may support your political views? Or what about the recent +claims that a famous IT company like Apple has a sexist bias on the +their recently launched credit card? + +
+We do not have the answers here, nor will we venture into a deeper +discussions of these aspects, but we want you think over these topics +in a more overarching way. A statistical data analysis with its dry +numbers and graphs meant to guide the eye, does not necessarily +reflect the truth, whatever that is. As a scientist, and after a +university education, you are supposedly a better citizen, with an +improved critical view and understanding of the scientific method, and +perhaps some deeper understanding of the ethics of science at +large. Use these insights. Be a critical citizen. You owe it to our +society. + +
+ +
+ +
+ + + + + + +
+ + +
+ + +
+
+ + +
+ + ++ +
+ + +