페이지

2022년 5월 14일 토요일

1.1.3 Neural Networks and Deep Learning

 Neural network algorithms are a class of algorithms that learn from data based on neyural networks. They still belong to the category of machine learning. Due to the limitation of computing power and data volume, early neural networks were shallow, usually with around one to four layers. Therefore, the network expression ability was limited. With the improvement of computing power and the arrival of the big data era, highly parallelized graophics processing units(GPUs) and massive data make training of large-scale neural networks possible.

In 2006, Geoffrey Hinton first proposed the concept of deep learning. In 2012, AlexNet, and eight-layer deep nerural network, was released and achieved huge performance imprevements in the image recongnition competition. Since then, neural network models with dozens, hundreds, and even thousands of layers have been developed successively, showing strong learning ability. Algorithms implemented using deep neural networks are generallty referred to as deep learning models. In essence, neural networks and deep learning can be considered the same.

Let's simply compare deep learning with other algorithms. As shown in Figure 103, rule-baed systems usually write explicit logic, which is generally designed for specific tasks and is not suitable for other tasks. Traditional machine learning algorithms artificially design feature detection methods with certain generality, such as SIFT nad HOG features. These featureas are suitable for a certain type of tasks and have certain generality. but the performance highly depends onb how to desing those features. The emergence of neural hetworks ahs made it possible for omputers to design those features automatically through nerual nwtworks without human intervention. Shallow nerual networks typically have limited feature extraction capability, while deep neural networks are capable of extracting high-level, abstract features and have better performance.

1.1.2 Machine Learning

 Machie learning can be divided into supervised learning, unsupervised learning, and reinforcement learning, as shown in Figure 1-2.

Supervised Learning. The supervised learning data set contains samples x and sample labels y. The algorithm needs to learn the mapping relationship f0: x->y, where f0 represents the model function and  are the parameters of the model. During training, the model parameters  are optimized by  minimizing errors between the model prediction and the real value y, so that the model can have more accurate prediction. Common supervised learning models include linear regression, logistic regression, support vector machines (SVMs), and random forests.

Unsupervised Learning. Collecting labeled data is often more expensive. For a sample-only data set, the algorithm needs to discover the modalities of the data itself. This kind of algorithm is called unsupervised learning. One type of algorithm in unsupervised learning uses itself as a supervised signal, that is, f:x->x, which is known as self-supervised learning. During training, parameters are optimized by minimizing the error between the model's predicted value f(x) and itself x, common unsupervised learning algorithms include self-encoders and generative adversarial networks(GANs)

Reinforcement Learning. This is a type of algorithm that learns strategies for solving problems by  interacting with the environment, Unlike supervised and unsupervised learning, reinforcement learning problems do not have a clear "correct" action supervision signal. The algorithm needs to interact with the environment to obtain a lagging reward signal from the environmental feedback. Therefore, it is not possible to calculate the errors between model Reinforcement Learning prediction and "correct values" to optimize the network directly. Common reinforcement learning algorithms are Deep Q-Networks(DQNs) and Proximal Policy Optimizaiton(PPO).


1.1.1 Artificial Intelligence Explained

 AI is a technology that allows machines to acquire intelligenct and inferential mechanisms like humans. this concept first appeared at the Dartmouth Conference in 1956. This is a very challenging task. At present, human beings cannot yet have a comprehensive and scientific understanding of the working mechanism of the human brain. It is undoubtedly more difficult to make intelligent machines that can reach the level of the human brain. With that being said, machines that archive similar to or even supass huyman intelligence in some way have been proven to be feasible.

How to relize AI is very broad question. The development of AI has mainly gone thorough three stages, and each stage represent the exploration footprint of the human trying to realize AU from differenct angles. In the early stage, people tried to develop intelligent systems by suymmarizing and generalizing some logical rules and implementing them in the form of computer programs. But such explicit rules are often too simple and are difficult to be used to express complex and abstract concepts and rules. This stage is called the inference period.

In the 1970s, scientists tried to implement AI though knowledge database and reasoning. They built a large and complex expert system to simulate the intelligence level of human experts. One of the biggest difficulties with theses explicitly specified rules is that many complex, abstract concepts cannot be implemented in concrete code. For example, the process of human recognition of pictures and understanding of languages cannot be simulated by established rules at all. To solve such problems, a research discipline that allowed machines to automatically learn rules from data, known as machine learning, was born, Machine learning become a popular subject in AI in the 1980s, This is the second stage.

In machine learning, there is a directiion to learn complex, abstract logic through neural networks, Research on the direction of neural networks has experienced two ups and downs. Since 2012, the applications of deep neural network technology have made major breakthroughs in fields like computer vision, natural language processing(NLP), and robotics. Some tasks have even surpassed the level of human intelligence. This is the third revival of AI. Deep neural networks eventually have a new name -  deep learning. Generally speaking, the sessential difference between neural networks and deep learning is not large. Deep learning refers to models or algorithms based on deep neural networks. The relationship between artificial intelligence, machine learning, neural networks, and deep learning is shown in Figure 1-1.



1.1 Artificial Intelligence in Action

 Information technology is the third industrial revolution in human history. The popularity of computers, the Internet, and smart home technology has greatly facilitated people's daily lives. Through programming, humans can hand over the interaction logic designed in advance to the machine to execute repeatedly and quickly, thereby freeing humans from simple and tedious repetitive labor. However, for tasks that require a high level of intelligence, such as face recognition, chart robots, and autonomous driving, it is difficult to design clear logic rules. Therefore, traditional programming methods are powerless to those kinds of tasks, whereas artificial intelligence(AI), as the key technology to solve this kind of problem, is very promising.

Wigh the rise of deep learning algorithms, AI has achieved or even surpassed hymanlike intelligence on some tasks. For example, the AlphaGo program has defeated Ke Jie, one of the stongest human Go players, and OpenAI Five has beaten the champion team OG on the Dota2 game. In the meantime, practical technologies such as face recognition, intelligent speech, and machine translation have entered people's daily lives. Now our lives are actully surrounded by AI. Although the current level of intelligence that can be reached is still a long way from artificial general intelligence(AGI), we still firmly believe that the era of AI has arrived.

Next, we will introduce the concepts of AI, machine learning, and deep learning, as well as the connecctions and differences between them.


CHAPTER 1 Introduction to Artificial Intelligence

 What we want is a machine that can learn from experience. -Alan Turing

2022년 5월 7일 토요일

1.11.6 Open-Source Systems as Learning Tools

 The free-software movement is driving legions of programmers to create thousands of open-source projects, including operating systems. Sites like http://freshmeat.net/ and http://distrowatch.com/ provide portals to many of these projects. As we started earlier, open-source projects enable students to use source code as a learning tool. They can modify programs and test them, help find and fix bugs, and otherwise explore mature, full-featured operating systems, compilers, tools, user interfaces, and other types of programs. The availability of source code for historic projects, such as Multics, can help students to understand those projects and to build knowledge that will help in the implementation of new projects.

Another advantage of working with open-source operating systems is their diversity. GNU/Linux and BSD UNIX are both open-source operating systems, for instance, but each has its own goals, utility, licensing, and purpose. Sometimes, licenses are not mutually exclusive and cross-pollination occurs, allowing rapid improvements in operating-system projects. For example, several major components of OpenSolaris have been ported to BSD UNIX. The advantages of free software and open sourcing are likely to increase the number and quality of open-source projects, leading to an increase in the number of individual and companies that use these projectgs.


1.11.5 Solaris

 Solaris is the commercial UNIX-based operating system of Sun Microsystems. Iriuginally, Sun's SunOS operating sysstem was based on BSD UNIX. Sun moved to AT&T's System V UNIX as its base in 1991. In 2005, Sun open-sourced most of the Solaris code as the OpenSolaris project. The purchase of Sun by Oracle in 2009, however, left the state of this project unclear.

Several groups interested in using OpenSolaris have expanded its features, and their working set is Project Illumos, which has expanded from the Open-Solaris base to include more features and to be the basis for several products. Illumos is available at http://wiki.illumos.org.