MỘT SỐ GIẢI PHÁP NÂNG CAO HIỆU QUẢ HOẠT ĐỘNG GIẢNG DẠY TRỰC TUYẾN MÔN TIN HỌC CƠ SỞ KHOA CÔNG NGHỆ THÔNG TIN Lê Thị Chung Trường Đại học Hà Nội Tóm tắt: Đào tạo trực tuyến là su thế t
Trang 1TRƯỜNG ĐẠI HỌC HÀ NỘI
Trang 2DỰ ĐOÁN DỮ LIỆU DẠNG CHUỖI SỬ DỤNG MẠNG THẦN KINH LSTM 4 MẠNG NƠ-RON HỒI QUY 12 MỘT SỐ GIẢI PHÁP NÂNG CAO HIỆU QUẢ HOẠT ĐỘNG GIẢNG DẠY TRỰC TUYẾN MÔN TIN HỌC CƠ SỞ - KHOA CÔNG NGHỆ THÔNG TIN 18 MỘT SỐ Ý KIẾN NHẰM PHÁT HUY VAI TRÒ, VỊ TRÍ CỦA TỔ CHỨC CÔNG ĐOÀN TẠI KHOA CÔNG NGHỆ THÔNG TIN – ĐẠI HỌC HÀ NỘI 23 ỨNG DỤNG HỌC MÁY XÂY DỰNG MODULE GIẢI BÀI TOÁN DỰ ĐOÁN GIÁ BẤT ĐỘNG SẢN 28 NGHIÊN CỨU VÀ THỬ NGHIỆM THUẬT TOÁN PHÂN CỤM K-MEANS 36 NHỮNG HOẠT ĐỘNG THỰC TIỄN GIÚP TĂNG HIỆU QUẢ CỦA HỌC TRỰC TUYẾN 42
SỬ DỤNG PHẦN MỀM MÔ PHỎNG CHO VI ĐIỀU KHIỂN ỨNG DỤNG TRONG GIẢNG DẠY 47 DÙNG PHẦN MỀM MÔ PHỎNG XÂY DỰNG CÁC BÀI LAB ARDUINO 52 XÂY DỰNG CÁC BÀI TẬP THỰC HÀNH TRÊN KIT PHÁT TRIỂN AT89S52 CHO MÔN HỆ THỐNG NHÚNG 57 ỨNG DỤNG CHUỖI MARKOV ĐỂ DỰ ĐOÁN XU HƯỚNG CỦA THỊ TRƯỜNG 63
KỸ THUẬT XỬ LÝ ẢNH BẰNG PHƯƠNG PHÁP PHÂN TÍCH SUY BIẾN 70 PHƯƠNG PHÁP GIÁ TRỊ TỐI ƯU TRONG ƯỚC LƯỢNG THAM SỐ 79
BỘ LỌC QUERYSTRING CHUYÊN DỤNG VÀ TÁC DỤNG TRONG VIỆC BẢO TRÌ, MỞ RỘNG HỆ THỐNG 87 ĐÁNH GIÁ KẾT QUẢ HỌC TẬP BẰNG THI TRẮC NGHIỆM KHÁCH QUAN ONLINE 93 NÂNG CAO CHẤT LƯỢNG ĐÀO TẠO CỦA KHOA CÔNG NGHỆ THÔNG TIN102 IMPROVING TWO-WAY COMMUNICATION WITH MOODLE CHAT AND FORUM MODULE 111 NGHIÊN CỨU SƠ BỘ VỀ XÂY DỰNG CHƯƠNG TRÌNH GIẢNG DẠY CÔNG NGHỆ PHẦN MỀM BẰNG PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM HƯỚNG MIỀN 116 ỨNG DỤNG CÔNG CỤ ĐÁM MÂY- TIỆN ÍCH CỦA GOOGLE HỖ TRỢ KHẢO SÁT Ý KIẾN PHẢN HỒI TỪ SINH VIÊN TRONG GIẢNG DẠY TRỰC TUYẾN CỦA GIẢNG VIÊN TẠI TRƯỜNG ĐẠI HỌC HÀ NỘI 130 GIẢI PHÁP NÂNG CAO HIỆU QUẢ TRONG VIỆC DẠY THỰC HÀNH MICROSOFT WORD 136
ÁP DỤNG DẠY HỌC DỰA THEO VẤN ĐỀ ĐỂ GIẢNG DẠY MÔN THIẾT KẾ HỆ THỐNG THÔNG TIN 144
VÍ DỤ VỀ DẠY HỌC DỰA TRÊN VẤN ĐỀ (PLOBLEM-BASED LEARNING) TẠI KHOA CÔNG NGHỆ THÔNG TIN – TRƯỜNG ĐẠI HỌC HÀ NỘI 153 QUẢN LÝ TÀI NGUYÊN HỆ THỐNG TÍNH TOÁN SONG SONG DỰA TRÊN GANGLIA 160
Trang 3ỨNG DỤNG OPENVPN ĐỂ NÂNG CAO BẢO MẬT CHO CÔNG NGHỆ THOẠI
QUA IP (VOICEIP) 169
ỨNG DỤNG GOOGLE CLASSROOM CHO THI TRỰC TUYẾN MÔN TIN HỌC CƠ SỞ 177
ỨNG DỤNG HỆ THỐNG MOODLE ĐỂ RA ĐỀ THI VÀ TỔ CHỨC THI CUỐI KỲ TRỰC TUYẾN MÔN MẠNG MÁY TÍNH – KHOA CÔNG NGHỆ THÔNG TIN – ĐẠI HỌC HÀ NỘI 190
TÁI CẤU TRÚC CONTROLLER VÀ ACTIONS TRONG THỰC TẾ 200
CHUYỂN ĐỔI ĐỊNH DẠNG VIDEO SANG MP4 SỬ DỤNG LARAVEL 207
NHÚNG HTML CODE TRONG JAVASCRIPT SỬ DỤNG HANDLEBARS 215
TẦM QUAN TRỌNG - VAI TRÒ CỦA GIẢNG VIÊN CHỦ NHIỆM – CỐ VẤN HỌC TẬP TRONG VIỆC ĐÀO TẠO THEO HÌNH THỨC TÍN CHỈ TẠI ĐẠI HỌC222 TẦM QUAN TRỌNG CỦA KỸ NĂNG CÔNG NGHỆ THÔNG TIN CƠ BẢN - TIN HỌC VĂN PHÒNG 226
Trang 4DỰ ĐOÁN DỮ LIỆU DẠNG CHUỖI SỬ DỤNG
MẠNG THẦN KINH LSTM
Bùi Quốc Khánh *
*Trường Đại học Hà Nội
Tóm tắt: Mạng thần kinh hiện đang được ứng dụng rất phổ biến trong các ngành khoa
học nhằm cải thiện năng suất và chất lượng của cuộc sống Một trong những ứng dụng phổ biến là dự đoán kết quả của quá trình sản xuất dựa vào dữ liệu được thu thập trong thời gian trước đó Bài báo sử dụng dữ liệu sản lượng sữa được cập nhật hàng tháng của một nhà máy sản xuất sữa và dựa vào đó, dự đoán sản lượng sữa trong khoảng thời gian trong tương lại Dữ liệu được chia thành 2 phần: Một phần dùng cho việc tập huấn dữ liệu (training data) và một phần dùng để kiểm thử (testing data), dữ liệu được sắp xếp theo thứ tự thời gian nên testing data sẽ bao gồm các mốc thời gian trong tương lai so với training data Tác giả sau đó sử dụng mạng thần kinh LSTM, được hỗ trợ bởi gói sklearn và Keras – bộ kit rất nổi tiếng trong việc hỗ trợ các thuật toán liên quan đến học máy – để dự đoán sản lượng của testing data Hiệu quả của việc phỏng đoán được đánh giá dựa vào hàm tính sai số RMSE Sai sô càng thấp thì dự đoán càng chính xác Để việc so sánh trở nên dễ nhìn, tác giả đã mô phỏng kết quả thành dạng biểu đồ so sánh giá trị thực và giá trị phỏng đoán Kết quả cho thấy giá trị thực và giá trị phỏng đoán xấp xỉ bằng nhau Chứng tỏ việc sử dụng LSTM cho dữ liệu dạng chuỗi sắp xếp theo thứ
tự thời gian là hiệu quả và là tiền đề tốt để phát triển các bài toán tương tự mang tính ứng dụng
cao hơn
Từ khóa: Artificial Neural Networks (ANN), Sequential Data, Long Short-Term Memory (LSTM), Keras
Abstract: This paper examines the outstanding application of Long Short-Term Memory
(LSTM) Neural Network in predicting temporal data using Keras The performance of the prediction is then evaluated by Root Mean Squared Error (RMSE) and the visualization of the result is also presented
Keywords: Artificial Neural Networks (ANN), Sequential Data, Long Short-Term Memory
(LSTM), Keras
I INTRODUCTION
With the development of computer science in the last two decades, the Artificial Neural Network models have been widely used in various aspects of science and engineering because of the simplicity of its model structure Researchers have applied various neural network model techniques such as using them alone or in combination with process-based models to reduce errors and improve the models’ prediction
Trang 5accuracy Philip Doganis [1] reviewed papers on the application of Artificial Intelligence (AI) based on the hybrid model of the radial basis function (RBF) neural network architecture and a specially designed genetic algorithm indicated that the AI had exhibited significant progress in forecasting and modeling sales data of fresh milk provided by a major manufacturing company of dairy products This paper also recommends the potential application of ANNs in modeling and forecasting milk production given a time series data
Recently, owing to the breakthrough in the field of computational science, deep learning or deep neural network (DNN) methods based on ANNs have received a growing interest both academically and practicality from scientists [2] Moreover, the Long Short-Term Memory (LSTM) neural network, one of the state-of-the-art applications of DNN, has been successfully applied in various fields (especially for time sequence problems) such as: Speech recognition [3], machine translation [4] [5], language modeling [6], tourism field [7] [8], stock prediction [9], and rainfall-runoff simulation [10] [11] Several LSTM studies listed above suggest that LSTM-based models have been successfully used in various fields and can be applicable to milk production forecasting
B Technology
The encoder-decoder architecture has been implemented using Googles framework for distributed machine learning TensorFlow We used Keras on top of TensorFlow Keras was chosen as it is designed for fast prototyping and experimentation with a simple API It allows to configure NNs in a modular way by combining different layers, activation functions, loss functions, and optimizers, etc Keras provides out of the box solutions for most of the standard deep learning building blocks However, if someone wants to build a custom or novel implementation, Keras API could be quite limited, and libraries like TensorFlow will be a better choice For evaluation, different metrics have been used, that were partly taken from the scikit-learn library for Python
C Long Short-Term Memory (LSTM) Neural Networks
A typical LSTM network is comprised of memory blocks called cells Two states are being transferred to the next cell, the cell state and the hidden state The cell state is the main chain of data flow, which allows the data to flow forward essentially
Trang 6unchanged However, some linear transformations may occur The data can be added to
or removed from the cell state via sigmoid gates A gate is similar to a layer or a series
of matrix operations, which contain different individual weights LSTMs are designed to avoid the long-term dependency problem because it uses gates to control the memorizing process
Figure 1 The structure of the Long Short-Term Memory (LSTM) neural network
Reproduced from Yan [12]
The first step in constructing an LSTM network is to identify information that is not required and will be omitted from the cell in that step This process of identifying and excluding data is decided by the sigmoid function, which takes the output of the last LSTM unit (ht−1) at time t−1 and the current input (Xt) at time t Additionally, the sigmoid function determines which part from the old output should be eliminated This gate is called the forget gate (or ft); where ft is a vector with values ranging from 0 to 1, corresponding to each number in the cell state, Ct−1
ft = σ(Wf [ht−1,Xt] +bf)
Trang 7Herein, σ is the sigmoid function, and Wf and bf are the weight matrices and bias, respectively, of the forget gate
The following step is deciding and storing information from the new input (Xt) in the cell state as well as to update the cell state This step contains two parts, the sigmoid layer and second the tanh layer First, the sigmoid layer decides whether the new information should be updated or ignored (0 or 1), and second, the tanh function gives weight to the values which passed by, deciding their level of importance (−1 to 1) The two values are multiplied to update the new cell state This new memory is then added
to old memory Ct−1 resulting in Ct
by the tanh layer from the cell state (Ct), with a value ranging between −1 and 1
Ot = σ(Wo [ht−1, Xt] +bo)
ht = Ot tanh(Ct) Here, Wo and bo are the weight matrices and bias, respectively, of the output gate
D Model Evaluation Criteria
To evaluate the performance of forecasting models, NSE and RMSE are statistical methods often used to compare predicted values with observed values The NSE measures the ability to predict variables different from the mean and gives the proportion of the initial variance accounted for by the model The RMSE is frequently used to evaluate how closely the predicted values match the observed values, based on the relative range of the data
𝑁𝑆𝐸 = (1 − ∑ (𝑂𝑖− 𝑃𝑖)
2 𝑛
𝑖=1
∑𝑛 (𝑂𝑖− 𝑂̅𝑖)2 𝑖=1
) × 100
Trang 8𝑅𝑀𝑆𝐸 = √1
𝑛∑(𝑂𝑖− 𝑃𝑖)2𝑛
𝑖=1
In the above equations, Oi and Pi are observed discharges and simulated
discharges at time t, respectively; Oi is the mean of observed discharges; and n is the total number of observations The NSE values range from −∞ to 1, and an RMSE equal
to zero implies a perfect fit The LSTM model produces reliable results when the RMSE values are small, and the NSE values are approximately 1.IMPLEMENTATION
We create a data set function that takes two arguments: the dataset, which is a NumPy array that we want to convert into a dataset, and the look_back, which is the number of previous time steps to use as input variables to predict the next time period,
in this case defaulted to 1
This default will create a dataset where X is the quantity of the item at a given time (t) and Y is quantity of the item at the next time (t + 1)
LSTMs are sensitive to the scale of the input data, specifically when the sigmoid
or tanh activation functions are used We rescale the data to the range of 0-to-1 This is also called normalizing We will normalize the dataset using the MinMaxScaler preprocessing class from the scikit-learn library
After we model our data and estimate the accuracy of our model on the training dataset, we need to get an idea of the skill of the model on new unseen data For a normal classification or regression problem, we would do this using cross validation With time series data, the sequence of values is important A simple method that we used is to split the ordered dataset into train and test datasets We calculate the index of the split point and separates the data into the training datasets with 67% of the observations that we can use to train our model, leaving the remaining 33% for testing the model The LSTM network expects the input data (X) to be provided with a specific array structure in the form of: [samples, time steps, features] Currently, our data is in the form: [samples, features] and we are framing the problem as one-time step for each sample We can transform the prepared train and test input data into the expected structure using numpy.reshape()
Trang 9We build the LSTM network by creating one visible layer with one input, one hidden layer with four LSTM blocks or neurons and an output layer that makes a single value prediction Once the model is fit, we can estimate the performance of the model
on the train and test datasets After that, we invert the predictions before calculating error scores to ensure that performance is reported in the same units as the original data The Error Score – RMSE is then calculated for the model
We can see from result that Train Score and Test Score have the approximate Error Score, which means that our model is quite good To present the visualization of the predicted values and the trained ones, we use matplotlib library to show the comparison among them, in which, the original dataset in blue, the predictions for the training dataset in orange, and the predictions on the unseen test dataset in green
Trang 10Figure 2 The comparison of predicted data versus the original and training ones
III CONCLUSION AND FUTURE WORK
The result of the experiment has proved the efficiency of LSTM in predicting the sequential data More challenging tasks with LSTM networks such as anomaly detection and text prediction are more of interest and require the variations of the LSTM for optimal results In the future, the hybrid of neural networks will be introduced so that
we can get the better insight and hopefully the research models can be applied in the empirical affair
REFERENCE
[1] Philip Doganis, Alex Alexandridis, Panagiotis Patrinos, Haralambos
Sarimveis, "Time series sales forecasting for short shelf-life food products based on
artificial neural networks and evolutionary computing," Journal of Food and
Engineering, vol 75, no 2, pp 196-204, 2006
[2] Y B a G H Y LeCun, "Deep Learning," Nature, vol 521, no 7553, pp
436-444, 2015
[3] Graves,A.;Mohamed,A.;Hinton,G, "Speech recognition with deep recurrent
neural networks," in IEEE International Conference on Acoustics, Speech and Signal Processing, Vancouver, BC, Canada, 26–31 May 2013
[4] Cho, K.; van Merrienboer, B.; Gülçehre, Ç.; Bougares, F.; Schwenk, H.; Bengio, Y, "Learning phrase representations using RNN encoder-decoder for statistical machine translation," arXiv:1406.1078, 2014
[5] Sutskever, I.; Vinyals, O.; Le, Q.V, "Sequence to sequence learning with
neural networks," in 27th International Conference on Neural Information Processing Systems, Montreal, QC, Canada, 8–13 December 2014
[6] Mikolov, T.; Joulin, A.; Chopra, S.; Mathieu, M.; Ranzato, M.A, " Learning
Trang 11longer memory in recurrent neural networks," arXiv:1412.7753, arXiv 2014
[7] Li, Y.; Cao, H, "Prediction for tourism flow based on LSTM neural network,"
Procedia Comput Sci, pp 129, 277–283, 2018
[8] Yanjie, D.; Yisheng, L.; Fei-Yue, W, "Travel time prediction with LSTM
neural network," in the IEEE 19th International Conference on Intelligent
Transportation Systems (ITSC), Rio de Janeiro, Brazil, 1–4 November 2016
[9] Nelson, D.M.Q.; Pereira, A.C.M.; de Oliveira, R.A, "Stock market’s price
movement prediction with LSTM neural networks," in the International Joint
Conference on Neural Networks (IJCNN), Anchorage, AK, USA, 14–19 May 2017
[10] Hu, C.; Wu, Q.; Li, H.; Jian, S.; Li, N.; Lou, Z, "Deep learning with a long short-term memory networks approach for rainfall-runoff simulation," Water, vol 10, p
1543, 2018
[11] Le, X.-H.; Ho, V.H.; Lee, G.; Jung, S, "A deep neural network application for
forecasting the inflow into the Hoa Binh reservoir inVietnam," in the11th International Symposium on Lowland Technology (ISLT 2018), Hanoi, Vietnam, 26–28 September
2018
[12] S Yan, "Understanding LSTM and Its Diagrams," 14 3 2016 [Online] Available: https://medium.com/mlreview/ understanding-lstm-and-its-diagrams-
37e2f46f1714 [Accessed 21 3 2020]
[13] N D a S P H R J Frank, "Time Series Prediction and Neural Networks,"
Journal of Intelligent & Robotic Systems, vol 31, no 1, pp 99-103, 2001
[14] G E D a G H A.-r Mohamed, "Acoustic Modeling using Deep Belief
Networks," in EEE Transactions on Audio, Speech, and Language Processing, 2012 [15] L R a B Juang, "An Introduction to Hidden Markov Models," IEEE ASSP Magazine, vol 3, no 1, pp 4-16, 1986
[16] P J Werbos, "Backpropagation Through Time: What It Does and How to Do
It," in Proceedings of the IEEE, 1990
[17] Y B P F a J S S Hochreiter, "Gradient Flow in Recurrent Nets: The Difficulty of Learning Long-Term Dependencies," 2001 [Online] Available:
http://www.bioinf.jku.at/publications/older/ch7.pdf
[18] P S a P F Y Bengio, "Learning Long-Term Dependencies with Gradient
Descent is Difficult," IEEE transactions on neural networks, vol 5, no 2, pp 157-166,
1994
[19] T M a Y B R Pascanu, "On the Difficulty of Training Recurrent Neural
Networks," ICML, vol 28, no 3, p 1310–1318, 2013
[20] J S a F C F A Gers, "Learning to forget: Continual Prediction with
LSTM," Neural computation, pp 2451-2471, 2000
[21] LeCun, Y.; Bengio, Y.; Hinton, G, "Deep learning," Nature, vol 521, p 436,
2015
Trang 12MẠNG NƠ-RON HỒI QUY
Bùi Quốc Khánh *
Trường Đại học Hà Nội
Tóm tắt: Ý tưởng chính của mạng hồi quy (Recurrent Neural Network) là sử dụng chuỗi
các thông tin Trong các mạng nơ-ron truyền thống tất cả các đầu vào và cả đầu ra là độc lập với nhau Tức là chúng không liên kết thành chuỗi với nhau Nhưng các mô hình này không phù hợp trong rất nhiều bài toán RNN được gọi là hồi quy (Recurrent) bởi lẽ chúng thực hiện cùng một tác vụ cho tất cả các phần tử của một chuỗi với đầu ra phụ thuộc vào cả các phép tính trước đó Nói cách khác, RNN có khả năng nhớ các thông tin được tính toán trước Gần đây, mạng LSTM đang được chú ý và sử dụng khá phổ biến Về cơ bản mô hình của LSTM không khác mô hình truyền thống của RNN, nhưng chúng sử dụng hàm tính toán khác ở các trạng thái
ẩn Vì vậy mà ta có thể truy xuất được quan hệ của các từ phụ thuộc xa nhau rất hiệu quả Việc ứng dụng LSTM sẽ được giới thiệu ở bài báo sau
Từ khóa: Neural Networks, Recurrent Neural Networks, Sequential Data
Abstract: One major assumption for Neural Networks (NNs) and in fact many other
machine learning models is the independence among data samples However, this assumption does not hold for data which is sequential in nature One mechanism to account for sequential dependency is to concatenate a fixed number of consecutive data samples together and treat them as one data point, like moving a fixed size sliding window over data stream Recurrent Neural Networks (RNNs) process the input sequence one element at a time and maintain a hidden state vector which acts as a memory for past information They learn to selectively retain relevant information allowing them to capture dependencies across several time steps, which allows them to utilize both current input and past information while making future predictions
Keywords: Neural Networks, Recurrent Neural Networks, Sequential Data
RECURRENT NEURAL NETWORK
I.MOTIVATIONFORRECURRENTNEURALNETWORKS
Before studying RNNs it would be worthwhile to understand why there is a need for RNNs and the shortcoming of NNs in modeling sequential data One major assumption for NNs and in fact many other machine learning models is the independence among data samples However, this assumption does not hold for data which is sequential in nature Speech, language, time series, video, etc all exhibit dependence between individual elements across time NNs treat each data sample individually and thereby lose the benefit that can be derived by exploiting this sequential information One mechanism to account for sequential dependency is to concatenate a fixed number of consecutive data samples together and treat them as one
Trang 13data point, similar to moving a fixed size sliding window over data stream This approach was used in the work of [13] for time series prediction using NNs, and in that
of [14] for acoustic modeling But as mentioned by [13], the success of this approach depends on finding the optimal window size: a small window size does not capture the longer dependencies, whereas a larger window size than needed would add unnecessary noise More importantly, if there are long-range dependencies in data ranging over hundreds of time steps, a window-based method would not scale Another disadvantage
of conventional NNs is that they cannot handle variable length sequences For many domains like speech modeling, language translation the input sequences vary in length
A hidden Markov model (HMM) [15] can model sequential data without requiring
a fixed size window HMMs map an observed sequence to a set of hidden states by defining probability distributions for transition between hidden states, and relationships between observed values and hidden states HMMs are based on the Markov property according to which each state depends only on the immediately preceding state This severely limits the ability of HMMs to capture long-range dependencies Furthermore, the space complexity of HMMs grows quadratically with the number of states and does not scale well
RNNs process the input sequence one element at a time and maintain a hidden state vector which acts as a memory for past information They learn to selectively retain relevant information allowing them to capture dependencies across several time steps This allows them to utilize both current input and past information while making future predictions All this is learned by the model automatically without much knowledge of the cycles or time dependencies in data RNNs obviate the need for a fixed size time window and can also handle variable length sequences Moreover, the number of states that can be represented by an NN is exponential in the number of nodes
II.RECURRENTNEURALNETWORKS
Figure 1 A standard RNN The left-hand side of the figure is a standard RNN The state vector in the
hidden units is denoted by s On the right-hand side is the same network unfolded in time to depict how the state is built over time Image adapted from [2]
An RNN is a special type of NN suitable for processing sequential data The main feature of an RNN is a state vector (in the hidden units) which maintains a memory of
Trang 14all the previous elements of the sequence The simplest RNN is shown in Figure 1 As
can be seen, an RNN has a feedback connection which connects the hidden neurons across time At time t, the RNN receives as input the current sequence element xt and the hidden state from the previous time step 𝑠 𝑡−1 Next the hidden state is updated to stand finally the output of the network this calculated In this way the current output ℎ𝑡depends on all the previous inputs 𝑥′ 𝑡 (for 𝑡 ′ < 𝑡) U is the weight matrix between the
input and hidden layers likewise a conventional NN W is the weight matrix for the recurrent transition between one hidden state to the next V is the weight matrix for
hidden to output transition
st = σ(Uxt+ Wst−1+ bs)
Equations summarize all the computations carried out at each time step
The softmax represents the softmax function which is often used as the activation
function for the output layer in a multiclass classification problem The softmax function ensures that all the outputs range from 0 to 1 and their sum is 1
Equation specifies the softmax for a K class problem
A standard RNN as shown in Figure 1 is itself a deep NN if one considers how it behaves during operation As shown on the right side of the figure, once the network is unfolded in time, it can be considered a deep network with the number of layers
equivalent to the number of time steps in the input sequence Since the same weights are used for each time step, an RNN can process variable length sequences At each time step new input is received and due to the way the hidden state 𝑠𝑡 is updated, the
information can flow in the RNN for an arbitrary number of time steps, allowing the RNN to maintain a memory of all the past information
III.TRAININGRNNS
RNN training is achieved by unfolding the RNN and creating a copy of the model for each time step The unfolded RNN, on the right side of the figure 1, can be treated as
a multilayer NN and can be trained in a way similar to back-propagation
This approach to train RNNs is called back-propagation through time (BPTT)
[16] Ideally, RNNs can be trained using BPTT to learn long-range dependencies over arbitrarily long sequences The training algorithm should be able to learn and tune weights to put the right information in memory In practice, training RNNs is difficult because standard RNNs perform poorly even when the outputs and relevant inputs are separated by as little as 10-time steps It is now widely known that standard RNNs cannot be trained to learn dependencies across long intervals [17] [18] Training an
Trang 15RNN with BPTT requires backpropagating the error gradients across several time steps
If we consider the standard RNN (figure 1), the recurrent edge has the same weight for each time step Thus, backpropagating the error involves multiplying the error gradient with the same value repeatedly This causes the gradients to either become too large or decay to zero These problems are referred to as exploding gradients and vanishing gradients respectively In such situations, the model learning does not converge at all or may take an inordinate amount of time The exact problem depends on the magnitude of the recurrent edge weight and the specific activation function used If the magnitude of weight is less than 1 and sigmoid activation is used, vanishing gradients is more likely, whereas if the magnitude is greater than 1 and ReLU activation is used, exploding gradients is more likely [19]
Several approaches have been proposed to deal with the problem of learning term dependencies in training RNNs These include modifications to the training procedure as well as new RNN architectures In the study of [19], it was proposed to scale down the gradient if the norm of the gradient crosses a predefined threshold This strategy known as gradient clipping has proven to be effective in mitigating the exploding gradients problem The Long Short-Term Memory (LSTM) architecture was introduced by [17] to counter the vanishing gradients problem LSTM networks have proven to be very useful in learning long-term dependencies as compared to standard RNNs and have become the most popular variant of RNN
long-IV.LONGSHORT-TERMMEMORYARCHITECTURE
LSTM can learn dependencies ranging over arbitrary long-time intervals LSTM overcome the vanishing gradients problem by replacing an ordinary neuron by a complex architecture called the LSTM unit or block An LSTM unit is made up of simpler nodes connected in a specific way The architecture of LSTM unit with forget gate is shown below: [20]
1) Input: The LSTM unit takes the current input vector denoted by 𝑥𝑡 and the output from the previous time step (through the recurrent edges) denoted by ℎ𝑡−1 The weighted inputs are summed and passed through tanh activation, resulting in 𝑧𝑡
2) Input gate: The input gate reads 𝑥𝑡 and ℎ𝑡−1, computes the weighted sum, and applies sigmoid activation The result 𝑖𝑡 is multiplied with the 𝑧𝑡, to provide the input flowing into the memory cell
3) Forget gate: The forget gate is the mechanism through which an LSTM learns
to reset the memory contents when they become old and are no longer relevant This may happen for example when the network starts processing a new sequence The forget gate reads 𝑥𝑡 and ℎ𝑡−1 and applies a sigmoid activation to weighted inputs The result,
𝑓𝑡 is multiplied by the cell state at previous time step i.e 𝑠𝑡−1 which allows for forgetting the memory contents which are no longer needed
Trang 164) Memory cell: This comprises of the CEC, having a recurrent edge with unit weight The current cell state 𝑠𝑡 is computed by forgetting irrelevant information (if any) from the previous time step and accepting relevant information (if any) from the current input
5) Output gate: Output gate takes the weighted sum of 𝑥𝑡 and ℎ𝑡−1 and applies sigmoid activation to control what information would flow out of the LSTM unit
6) Output: The output of the LSTM unit, ℎ𝑡, is computed by passing the cell state
𝑠𝑡 through a tanh and multiplying it with the output gate, 𝑜𝑡
V.CONCLUSIONANDFUTUREWORK
This work has proposed the effective approach in applying Neural Network to solve problems with sequential data LSTM architecture is proved to be effective in predicting sequential data such as handwriting recognition, handwriting generation, music generation and even language translation The potential of application of LSTM
is that they are achieving almost human level of sequence generation quality This topic
is of interest for further research and implementation
REFERENCES [1] N D a S P H R J Frank, "Time Series Prediction and Neural Networks," Journal of Intelligent & Robotic Systems, vol 31, no 1, pp 99-103, 2001
[2] G E D a G H A.-r Mohamed, "Acoustic Modeling using Deep Belief Networks," in EEE Transactions on Audio, Speech, and Language Processing, 2012
Trang 17[3] L R a B Juang, "An Introduction to Hidden Markov Models," IEEE ASSP Magazine, vol 3, no 1, pp 4-16, 1986
[4] Y B a G H Y LeCun, "Deep Learning," Nature, vol 521, no 7553, pp 436-444, 2015
[5] P J Werbos, "Backpropagation Through Time: What It Does and How to Do It," in Proceedings of the IEEE, 1990
[6] Y B P F a J S S Hochreiter, "Gradient Flow in Recurrent Nets: The Difficulty of Learning Long-Term Dependencies," 2001 [Online] Available:
Trang 18MỘT SỐ GIẢI PHÁP NÂNG CAO HIỆU QUẢ HOẠT ĐỘNG GIẢNG DẠY TRỰC TUYẾN MÔN TIN HỌC CƠ SỞ
KHOA CÔNG NGHỆ THÔNG TIN
Lê Thị Chung
Trường Đại học Hà Nội
Tóm tắt: Đào tạo trực tuyến là su thế tất yếu trong thời đại công nghệ số hiện nay Bên
cạnh phương pháp dạy học truyền thống thì dạy học trực tuyến là một trong nhiều phương pháp dạy học tiên tiến và mang lại hiệu quả cao Đặc biệt trong bối cảnh dịch bệnh CoVid- 2 đang lan rộng trên thế giới nói chung và tại Việt Nam nói riêng thì dạy dạy học trực tuyến chính là một giải pháp phù hợp của giáo dục nhằm nâng cao chất lượng đào tạo nguồn lực cho xã hội
Bài báo nghiên cứu về thực trạng hoạt động dạy học trực tuyến môn Tin học cơ sở tại Khoa Công nghệ Thông tin - Trường Đại học Hà Nội, từ đó đề xuất một số giải pháp nhằm nâng cao hiệu quả hoạt động dạy học trực tuyến hiện nay tại
Từ khóa: dạy học trực tuyến, E-learing, môn Tin học cơ sở, Khoa CNTT
I.TỔNGQUANVỀHOẠTĐỘNGDẠYVÀHỌCTRỰCTUYẾN-E
LEARNING
1 Khái niệm hoạt động dạy và học trực tuyến – E learning
E - learning là một hình thức học ảo thông qua mạng Internet kết nối với các hoạt động đào tạo có lưu trữ sẵn các bài giảng điện tử và một số phần mềm cần thiết cho phép học viên và người giảng dạy có thể trao đổi thông tin bài học với nhau và học viên
có thể nhận yêu cầu cũng như các bài tập từ giảng viên Ngoài ra, giảng viên còn có thể truyền tải âm thanh, hình ảnh và video minh họa nội dung qua các kết nối băng thông rộng hoặc kết nối mạng Lan, mạng Wifi, WiMax [1]
2 Đặc điểm của hoạt động dạy và học trực tuyến E – learning
Thực tế hiện nay, nhiều cơ sở đào tạo đang tổ chức thực hiện dạy học trực tuyến như là một giải pháp thay thế và hỗ trợ cho phương thức dạy học truyền thống Đặc điểm của phương thức dạy học trực tuyến và dạy học truyền thống được thể hiện thông qua bảng dưới đây:
a Về thời gian
Tiết kiệm linh hoạt về thời gian Bó buộc trong khoảng thời gian nhất
định
b Về chi phí
Trang 19 Tiết kiệm chi phí, công sức Tốn nhiều công sức và chi phí hơn
c Cách tiếp cận bài giảng
Dễ tiếp cận và thuận tiện Tiếp cận phụ thuộc vào thời gian và
khu vực địa lý
d Về chất lượng, nội dung
Kiểm soát được quá trình học tập
thông qua các công cụ đánh giá, đưa
ra những biện pháp hỗ trợ để góp phần
nâng cao hiệu quả học tập của học
viên
Có thể lưu trữ được các bài học, phục
vụ cho việc ôn tập lại kiến thức của
học viên
Cung cấp tài nguyên học tập phong
phú cho học viên: bài giảng, bài tập,
tài liệu học tập được biên soạn bài bản
và hệ thống từ cơ bản đến nâng cao
Chủ động tự lựa chọn cách học và tốc
độ phù hợp đối với mình
Cung cấp các kênh tương tác giữa học
viên và giáo viên, giữa các bạn học
viên với nhau
Số lượng học sinh bị giới hạn, bị giới hạn bởi không gian và địa lý
Đánh giá kết quả thông qua bài kiểm tra
Giáo viên giảng dạy một lần theo giáo
án và công cụ lưu trữ duy nhất là vở ghi chép của sinh viên
Tài liệu học tập: tài liệu nội bộ của mỗi trường, sách giáo khoa và sách tham khảo
Chương trình và tốc độ học do giáo viên đưa ra chung cho tất cả sinh viên dựa yêu cầu của chương trình đào tạo
Sự tương tác giữa giáo viên và sinh viên, giữa sinh viên với nhau còn hạn chế
II.HOẠTĐỘNGDẠYVÀHỌCTRỰCTUYẾNMÔNTINHỌCCƠSỞTẠIKHOACNTT -TRƯỜNGĐẠIHỌCHÀNỘI
1 Thực tế hoạt động dạy và học trực tuyến môn Tin học cơ sở tại Khoa CNTT
Do tình hình dịch bệnh Covid-2 diễn biến phức tạp và kéo dài tại Việt Nam và nhiều nước trên thế giới, để đảm bảo tiến độ chương trình các môn học trong học kì 2 năm học 2019-2020, Trường Đại học Hà Nội đã triển khai hình thức giảng dạy trực tuyến bắt đầu từ tháng 3 năm 2020 Trong đó, môn Tin học cơ sở thuộc Khoa CNTT cũng là một trong các môn học đang triển khai hoạt động dạy và học trực tuyến trong mùa dịch này Trước đây, môn Tin học cơ sở được triển khai theo phương thức dạy và học truyền thống theo tiến trình sau đây:
Sinh viên sẽ được yêu cầu nghiên cứu trước lý thuyết (qua giáo trình, thư viện điện tử…)
Trong lớp học, giảng viên sẽ tổng hợp lại lý thuyết
Trang 20 Thực hiện thao tác mẫu để hướng dẫn sinh viên
Giao bài tập để sinh viên rèn luyện thao tác
Kiểm tra và nhận xét bài làm của sinh viên, hướng dẫn lại thao tác
Việc triển khai công tác dạy học trực tuyến môn Tin học cơ sở tại Khoa CNTT trường Đại học Hà Nội diễn ra khá thuận lợi, công tác giảng dạy và học trực tuyến được tiến hành ngay sau khi có chỉ thị và yêu cầu của Thủ tướng Chính phủ cũng như Bộ Giáo dục và đào tạo
Thuận lợi đầu tiên có thể thấy đó là Nhà trường đã có quyết định kịp thời sử dụng
bộ công cụ tiện ích của Google bao gồm Google Meet, Google Classroom, Google Calendar được mua bản quyền để triển khai hoạt động giảng dạy trực tuyến trong toàn Trường Đây là bộ công cụ tiện ích, có nhiều ưu điểm, duy trì hiệu quả rất tốt cho hoạt động giảng dạy và học tập trực tuyến so với các phần mềm khác Tổ chức các lớp tập huấn sử dụng phần mềm cho đội ngũ giảng viên trong Nhà trường Nhờ đó, mọi hoạt động giảng dạy của các giảng viên môn Tin học cơ sở tại Khoa CNTT trường Đại học
Hà Nội đang được tiến hành một cách thuận lợi
Thuận lợi thứ hai, đó chính là đội ngũ giảng viên bộ môn Tin học cơ sở chúng tôi đều là các giảng viên được đào tạo về công nghệ thông tin nên khi sử dụng công nghệ hiện đại trong giảng dạy thì các giảng viên này đều có ưu thế, sở trường để có thể phát huy tốt bài giảng, sử dụng hiệu quả phần mềm ứng dụng G-Suite trong giảng dạy trực tuyến
Tuy nhiên, trong điều kiện dạy và học theo phương thức trực tuyến hiện nay, việc dạy và học môn Tin học cơ sở còn có một số hạn chế như sau:
Thứ nhất, trong giảng dạy trực tuyến thì khả năng tương tác giữa giảng viên và sinh viên còn hạn chế, chưa thật sự được hiệu quả như phương thức dạy và học truyền thống kể cả khi có sự truyền tải trên những đường truyền Internet tốc độ cao, ổn định Tuy có sự hỗ trợ của một số ứng dụng phục vụ dạy học trực tuyến với tính năng trao đổi trực tiếp giữa giảng viên và sinh viên thông qua các phần mềm trò chuyện trực tuyến nhưng trao đổi giữa sinh viên và giảng viên cũng không đầy đủ và linh động bằng việc trao đổi như phương thức đào tạo truyền thống Trong quá trình tiếp cận với các bài tập của môn Tin học cơ sở, sinh viên rất lúng túng và thường hỏi, trao đổi rất nhiều với giảng viên, nhưng vì đường truyền Internet chất lượng không ổn định, kết hợp với nhiều điều kiện khác, dẫn đến việc trao đổi gặp nhiều khó khăn
Thứ hai, thời gian cho hoạt động dạy và học trực tuyến môn Tin học cơ sở hiện nay phần nào không đáp ứng được mục tiêu định hướng kiến thức, rèn luyện thao tác thực hành như thời gian học trên lớp học truyền thống Để đảm bảo được qui trình như một buổi học truyền thống thì cần phải có nhiều thời gian hơn cho một lớp học trực tuyến như hiện nay
Trang 21Thứ ba, mục tiêu đặt ra trong giờ học là phải đánh giá được kỹ năng của sinh viên, nhưng với buổi học trực tuyến hiện nay đối với các lớp ghép có số lượng đến 40 sinh viên thì việc kiểm tra hết được toàn bộ các sinh viên trong lớp là không thể Đối với các lớp có sĩ số 25 sinh viên thì còn có thể kiểm tra, đánh giá hết được các sinh viên trong lớp trong giờ học trực tuyến
2 Đề xuất một số giải pháp nhằm nâng cao hiệu quả hoạt động giảng dạy trực tuyến môn Tin học cơ sở tại Khoa CNTT
Việc dạy và học trực tuyến vẫn đang diễn ra và sẽ còn được thực hiện tiếp tục trong thời gian tới để đảm bảo hoạt động đào tạo của Nhà trường và hoàn thành nhiệm
vụ giảng dạy đã được Khoavà Nhà trường giao cho trong kế hoạch đầu năm Trong công tác giảng dạy môn Tin học cơ sở tại Khoa CNTT, tôi đã tìm kiếm, áp dụng một số biện pháp nhằm giảm thiểu một phần nào những hạn chế của việc dạy và học trực tuyến đang ảnh hưởng đến hoạt động giảng dạy môn Tin học cơ sở Sau một thời gian thực hiện, thấy hiệu quả hoạt động giảng dạy tăng lên rõ rệt, sinh viên hiểu và hoàn thành được bài tập tốt hơn, cụ thể như sau:
1 Sử dụng bài giảng điện tử, xây dựng các ví dụ minh họa gần gũi với thực tế nhằm thu hút sự chú ý của sinh viên và giúp sinh viên chủ động nắm vững kiến thức, khích lệ tính tự giác trong học tập
2 Đổi mới và kết hợp đa dạng các phương pháp dạy học nhằm mục đích tránh sự nhàm chán, đơn điệu trong tiết học Nhờ đó tiết học sẽ sinh động, hấp dẫn, sinh viên sẽ hứng thú và có nhiều cơ hội tiếp thu bài học tốt hơn
3 Đối với vấn đề hoạt động tương tác giữa sinh viên và giảng viên trong thời gian học trực tuyến chưa được đáp ứng đủ với phần mềm trực tuyến, tôi đã sử dụng một số công cụ bổ sung để hỗ trợ cho vấn đề này Với mỗi lớp tôi đảm nhiệm giảng dạy, tôi lập thêm một nhóm trên Zalo, trên nhóm đó 25/25 sinh viên có thể đưa ý kiến, hỏi những vấn đề đang vướng mắc, trao đổi vấn đề sinh viên quan tâm về môn Tin học cơ sở với giảng viên và tôi sẽ phản hồi, trả lời kịp thời các thông tin liên quan
4 Đối với vấn đề thời gian của học trực tuyến không đủ, tôi đã sắp xếp thêm các buổi học trực tuyến vào các ngày chủ nhật, bổ sung thêm vào giờ học những nội dung sinh viên nắm chưa rõ, cần phải hướng dẫn, thao tác lại để hỗ trợ sinh viên trong quá trình làm bài rèn luyện thực hành tại nhà
5 Triển khai hoạt động hỗ trợ dạy và học môn Tin học cơ sở bằng cách thực hiện quay các clip thao tác mẫu, gửi cho sinh viên làm tài liệu tham khảo Sau giờ học trực tuyến, có những sinh viên nào còn chưa chắc chắn về kiến thức, định hình được thao tác
kỹ năng thì có thể xem các clip hướng dẫn này để tập và rèn cho thành thạo
III.KẾTLUẬN
Có thể thấy rằng chất lượng đào tạo bị ảnh hưởng rất nhiều bởi phương thức đào tạo Trong xu thế triển khai hoạt động giảng dạy trực tuyến hiện nay tại trường Đại học
Trang 22Hà Nội, để đảm bảo được nhiệm vụ do khoa và nhà trường giao phó thì mỗi giảng viên cần không ngừng tìm kiếm những phương thức, vận dụng các công cụ hỗ trợ, khắc phục những hạn chế để cho hoạt động dạy và học ngày càng hiệu quả hơn
TÀILIỆUTHAMKHẢO[1] TS Trần Bá Trình - Đại học Sư phạm Hà Nội, Hội thảo “Học online mùa dịch”
Trang 23MỘT SỐ Ý KIẾN NHẰM PHÁT HUY VAI TRÒ, VỊ TRÍ
CỦA TỔ CHỨC CÔNG ĐOÀN TẠI KHOA CÔNG NGHỆ THÔNG TIN
ĐẠI HỌC HÀ NỘI
Lê Thị Chung
Trường Đại học Hà Nội
Tóm tắt - Hiện nay, trong hệ thống chính trị của Việt Nam, công đoàn là tổ chức chính trị
- xã hội do giai cấp công nhân, người lao động tự nguyện thành lập Công đoàn hoạt động dưới
sự lãnh đạo của Đảng và theo quy định của Hiến pháp, Pháp luật Tại các trường Đại học tổ chức công đoàn được thiết lập với nhiệm vụ trọng tâm, thường xuyên và được quán triệt đến các cấp công đoàn là chăm lo đời sống vật chất, tinh thần, đại diện bảo vệ quyền, lợi ích hợp pháp, chính đáng cho đội ngũ cán bộ, giảng viên, nhân viên Bài báo này nghiên cứu về thực trạng vai trò, vị trí của tổ chức công đoàn tại Khoa Công nghệ Thông tin – Trường Đại học Hà Nội
Từ khóa: Vai trò, vị trí, tổ chức công đoàn, Khoa CNTT
I TỔNG QUAN VAI TRÒ, VỊ TRÍ CỦA TỔ CHỨC CÔNG ĐOÀN
1 Vai trò vị trí của tổ chức công đoàn
Trong Hiến pháp nước Cộng hòa Xã hội Chủ nghĩa Việt Nam có quy định: “Công đoàn là tổ chức chính trị - xã hội của giai cấp công nhân và của người lao động cùng với
cơ quan Nhà nước, tổ chức kinh tế, tổ chức xã hội chăm lo và bảo vệ quyền lợi của các
bộ, công nhân, viên chức và những người lao động khác; tham gia quản lý Nhà nước và
xã hội, tham gia kiểm tra, giám sát hoạt động của cơ quan Nhà nước, tổ chức kinh tế; giáo dục cán bộ, công nhân, viên chức và những người lao động khác xây dựng và bảo
vệ Tổ quốc” [1]
Để phát huy vai trò của công đoàn trong quá trình tiến hành sự nghiệp cách mạng Việt Nam, bảo đảm quyền dân chủ và lợi ích của người lao động, Luật Công đoàn Việt Nam quy định chức năng, nhiệm vụ của Công đoàn như sau:
- Công đoàn đại diện và bảo vệ các quyền, lợi ích hợp pháp, chính đáng của người lao động; có trách nhiệm tham gia với Nhà nước phát triển sản xuất, giải quyết việc làm, cải thiện đời sống vật chất, tinh thần của người lao động
- Công đoàn đại diện và tổ chức người lao động tham gia quản lý cơ quan, đơn vị,
tổ chức, quản lý kinh tế- xã hội, quản lý Nhà nước; trong phạm vi chức năng của mình, thực hiện quyền kiểm tra, giám sát hoạt động của cơ quan, đơn vị, tổ chức theo quy định của pháp luật
- Công đoàn có trách nhiệm tổ chức, giáo dục, động viên người lao động, phát huy vai trò làm chủ đất nước, thực hiện nghĩa vụ công dân, xây dựng và bảo vệ Tổ quốc
xã hội chủ nghĩa.[2]
Trang 242 Vai trò, vị trí của tổ chức công đoàn trong trường Đại học
Trong xu thế cạnh tranh ngày càng tăng giữa các cơ sở đào tạo như hiện nay, việc đổi mới, nâng cao chất lượng giáo dục đại học, xây dựng đội ngũ cán bộ, giáo viên giỏi
về chuyên môn là rất cần thiết đối với mỗi trường đại học Để làm tốt nhiệm vụ này, trong mỗi Nhà trường cần phải có sự phối hợp chủ động, đồng bộ giữa chính quyền và các đoàn thể trong Trường
Tại mỗi trường đại học ở Việt Nam, tổ chức công đoàn đóng vai trò nòng cốt trong hoạt động của Trường bên cạnh Hội đồng trường, Đảng ủy trường, các hội đồng
tư vấn khác như: Hội đồng Khoa học trường, tổ chức Đoàn Thanh niên Cộng sản Hồ Chí Minh, … thể hiện vai trò, vị trí, chức năng, nhiệm vụ của mình theo quy định của Hiến pháp và Pháp luật Việt Nam
Nhiệm vụ trọng tâm của tổ chức công đoàn tại trường Đại học là chăm lo đời sống, đại diện bảo vệ quyền, lợi ích hợp pháp, chính đáng của công đoàn viên Phối hợp với các cấp lãnh đạo trong việc đảm bảo đời sống giảng viên, tăng cường giáo dục chính trị tư tưởng cho các công đoàn viên, tuyên truyền, vận động các công đoàn viên tham gia các phong trào thi đua, nghiêm túc thực hiện tốt đường lối, chủ trương của Đảng, chính sách pháp luật của Nhà nước, nghị quyết công đoàn Trường, thực hiện nhiệm vụ của cán bộ, giảng viên, thay đổi tác phong làm việc nhằm nâng cao hiệu quả công việc Bên cạnh đó tổ chức công đoàn thường xuyên đổi mới nội dung, phương thức hoạt động công đoàn phù hợp với tập thể công đoàn viên
Để phát huy được vai trò đó, việc tổ chức sinh hoạt thường xuyên là yếu tố rất cần thiết Các hoạt động tập trung vào đẩy mạnh tuyên truyền giáo dục cán bộ viên chức, giúp cho công đoàn viên nhận thức đúng đắn về cơ hội, thách thức, trong điều kiện hiện nay để tiếp tục đóng góp xây dựng và phát triển Nhà trường; tích cực tu dưỡng phẩm chất đạo đức nghề nghiệp, nâng cao trình độ chuyên môn, bám sát tình hình, nhiệm vụ chính trị của Nhà trường để phối hợp với các bộ phận chuyên môn xây dựng kế hoạch hoạt động thiết thực, tổ chức phong trào thi đua, có tổng kết, đánh giá Góp phần xây dựng đội ngũ, nâng cao hiệu quả các hoạt động phong trào, mở rộng dân chủ hóa Nhà trường Đóng góp ý kiến cho việc xây dựng và triển khai thực hiện các chủ trương, chính sách, chế độ của Nhà trường Phối hợp với Ban giám hiệu, lãnh đạo các Phòng, Trung tâm, Khoa, Bộ môn tuyên truyền, giáo dục, động viên cán bộ, giáo viên trong toàn trường phát huy quyền làm chủ trong nhà trường; thực hiện nghĩa vụ công dân, đóng góp cho việc xây dựng và phát triển của nhà trường.[3]
Như vậy, tổ chức công đoàn được thành lập và hoạt động dưới sự lãnh đạo của Đảng, đây chính là tổ chức đại diện và bảo vệ quyền, lợi ích hợp pháp, chính đáng của cán bộ, giảng viên, người lao động trong Nhà trường, tổ chức công đoàn thực hiện tuyên truyền, giáo dục, động viên cán bộ, giáo viên phát huy quyền làm chủ đối với cơ quan
và đất nước, thực hiện nghĩa vụ công dân, góp phần vào sự nghiệp giáo dục đào tạo của đất nước
Trang 25II TỔ CHỨC CÔNG ĐOÀN TẠI KHOA CNTT – TRƯỜNG ĐẠI HỌC HÀ NỘI
1 Thực trạng tại Khoa CNTT
Trường Đại học Hà Nội được thành lập từ năm 1959 với tên gọi ban đầu Trường Đại học Ngoại Ngữ, hiện nay Nhà trường có 14 phòng/ban chức năng, 19 khoa/bộ môn
và 17 đơn vị phục vụ đào tạo và nghiên cứu Song song cùng hoạt động đào tạo của Nhà
trường thì tổ chức công đoàn Trường cũng được hình thành và hoạt động hiệu qủa đảm bảo công tác công đoàn hành động theo phương châm “Đoàn kết, trí tuệ, dân chủ, đổi mới” Trực thuộc công đoàn Trường là rất nhiều các Tổ Công đoàn các Khoa, Phòng, Ban Trong các Tổ công đoàn Khoa của Trường thì Công đoàn Khoa CNTT là một tổ công đoàn hình thành trên nền tảng một khoa mới hình thành và phát triển trong hơn 10 năm với đội ngũ đoàn viên công đoàn trẻ về tuổi đời, năng động sáng tạo trong các hoạt động chuyên môn
Với mục tiêu phát huy tích cực vai trò là một đầu mối triển khai các hoạt động của công đoàn Trường, trong những nhiệm kỳ vừa qua Tổ Công đoàn Khoa CNTT đã tham gia tích cực các buổi họp công đoàn Trường nhằm đưa ra các ý kiến, góp ý với Nhà trường triển khai hội nghị xây dựng kế hoạch đầu năm, thực hiện cam kết giao ước trong việc triển khai nhiệm vụ năm học, góp ý trong xây dựng dự thảo quy chế phối hợp giữa Nhà trường và công đoàn, góp ý trong dự thảo quy chế chi tiêu nội bộ của Nhà Trường Tổ công đoàn Khoa CNTT cũng phát huy vai trò của mình trong công tác xây dựng Đảng như lựa chọn giới thiệu với Đảng Ủy các nhân sự có năng lực quản lý chuyên môn cao, các quần chúng ưu tú, … Tham gia xây dựng, đánh giá các kế hoạch hoạt động của Khoa thường xuyên và trong các nhiệm kỳ Công đoàn Khoa CNTT cũng phát huy vai trò của tổ chức trong hội nghị xây dựng kế hoạch hoạt động công đoàn của Nhà trường
Tổ công đoàn Khoa CNTT cũng đã làm tốt các hoạt động tình nghĩa như trợ cấp khó khăn, thăm hỏi ốm đau, tang gia hiếu hỉ, các hoạt động tương thân tương ái giúp đỡ nhà giáo và người lao động có hoàn cảnh khó khăn ổn định cuộc sống
Tích cực vận động cán bộ, giảng viên, nhân viên tham gia đóng góp các loại quỹ như: Quỹ khuyến học, quỹ vì người nghèo, quỹ tình nghĩa…
Hoạt động tham quan học tập cũng được tổ công đoàn quan tâm thực hiện trong các ngày nghỉ lễ, dịp nghỉ hè, … hàng năm
Tổ công đoàn Khoa CNTT cũng tham gia trong các cuộc vận động với việc thực hiện Chỉ thị 05 của Bộ Chính trị về đẩy mạnh việc học tập và làm theo tư tưởng, đạo đức, phong cách Hồ Chí Minh gắn với cuộc vận động “Mỗi thầy, cô giáo là tấm gương đạo đức, tự học và sáng tạo”
Nhân kỉ niệm Ngày Quốc tế phụ nữ 8/3, Ngày Phụ nữ Việt Nam 20/10, Ngày Nhà giáo Việt Nam 20/11, tổ công đoàn Khoa CNTT cũng thực hiện tốt các hoạt động chào mừng như: tham quan dã ngoại, nói chuyện chuyên đề về nữ giới, …
Trang 26Qua phần trình bày trên có thể thấy Tổ công đoàn Khoa CNTT cũng đã phát huy được một phần vai trò của một tổ chức, một đoàn thể, tuy nhiên trong quá trình hoạt động thì việc phát huy toàn diện và đầy đủ vai trò là nhiệm vụ cần phải đạt được của Tổ công đoàn Vì vậy trong thời gian tới Tổ công đoàn Khoa CNTT cần hoạt động tích cực hơn nữa nhằm thực hiện được đầy đủ vai trò của một tổ chức bảo vệ quyền lợi của người lao động, vai trò đối với hoạt động chuyên môn, quản lý đơn vị cũng như là vai trò tuyên truyền, giáo dục đã được qui định trong Luật Công đoàn và mục tiêu chính của công đoàn trường trong nhiệm kỳ 2017 – 2022
2 Đề xuất một số ý kiến nhằm phát huy vai trò, vị trí của tổ chức công đoàn Khoa CNTT
Thứ nhất, vai trò của tổ chức công đoàn trong các Khoa, Phòng, Ban thường triển khai, tuyên truyền vận động các công đoàn viên trong tổ tham gia tích cực vào các phong trào thi đua của Nhà trường, cũng như các phong trào thi đua yêu nước, các cuộc vận động mang tính xã hội rộng lớn trong đội ngũ cán bộ, nhà giáo và người lao động Tuy nhiên, đối với Tổ công đoàn Khoa CNTT thì các công đoàn viên đều có tuổi đời còn rất trẻ, có thể các thầy cô chú ý hơn vào công tác phát triển chuyên môn, nên chưa
có sự hưởng ứng mạnh mẽ đối với các hoạt động thi đua trong Nhà trường Mặt khác, đứng trên phương diện quyền lực thì Tổ trưởng công đoàn Khoa chỉ có thể vận động, tuyên truyền các thành viên tham gia chứ không thể ép buộc mọi người phải tham gia được Vì vậy, để triển khai được tốt vai trò của Tổ công đoàn trong Khoa và phát huy được các đóng góp của công đoàn Khoa với công đoàn Trường thì trong quá trình hoạt động Cần có sự theo dõi sát sao và sự ủng hộ kịp thời bằng các ý kiến chỉ đạo của Ban Lãnh đạo Khoa đối với hoạt động công đoàn cùng với Tổ trưởng công đoàn thì hoạt động của công đoàn Khoa CNTT sẽ thực sự hiệu quả
Thứ hai, việc chăm lo đời sống vật chất, tinh thần, đại diện bảo vệ quyền, lợi ích hợp pháp, chính đáng cho đội ngũ cán bộ, giáo viên, nhân viên luôn được xác định là nhiệm vụ trọng tâm, thường xuyên và được quán triệt đến các cấp công đoàn Vì vậy,
Tổ công đoàn Khoa CNTT cũng cần có sự phối hợp tốt về chuyên môn, tìm ra nhiều giải pháp phù hợp, hiệu quả nhằm cải thiện, nâng cao đời sống vật chất và tinh thần, tạo điều kiện làm việc thuận lợi cho cán bộ, giảng viên, nhân viên Bên cạnh đó, để thực hiện vai trò là tổ chức đứng về phía quyền lợi của người lao động thì tổ công đoàn Khoa CNTT cần tham gia tích cực vào công tác góp ý, đề xuất với ban chấp hành công đoàn Trường trong công tác đánh giá các hội đồng xét nâng lương, hội đồng thi đua khen thưởng để bảo vệ quyền lợi chính đáng cho cán bộ, giáo viên và nhân viên trong Khoa Thứ ba, Tổ công đoàn Khoa CNTT cũng nên triển khai công tác tuyên truyền, vận động đội ngũ nhà giáo, người lao động về chủ trương của Đảng, chính sách, pháp luật của Nhà nước, xây dựng tổ chức công đoàn vững mạnh gắn liền với công tác tham gia xây dựng Đảng và Nhà nước trong sạch vững mạnh Đối với công tác này thì hầu như
Trang 27các công đoàn Khoa thường không chú trọng và cho rằng đó là công tác của tổ chức Đảng, của Khoa, của Nhà trường
Cuối cùng, đối với công tác nữ công để hòa vào thành tựu chung của Nhà trường
và cũng để hướng tới sự phát triển thì Tổ công đoàn khoa CNTT cũng nên triển khai các hoạt động tuyên truyền các văn bản chính sách và pháp luật về phụ nữ như: Luật Phòng chống bạo lực gia đình, Luật Bình đẳng giới, các chuẩn mực của người phụ nữ Việt Nam trong thời kì công nghiệp hóa, hiện đại hóa Vận động chị em tích cực tham gia hưởng ứng các phong trào “Giỏi việc nước, đảm việc nhà”, “Xây dựng gia đình văn hoá”, “Phụ nữ tích cực học tập, lao động, sáng tạo, xây dựng gia đình hạnh phúc”, thực hiện chính sách dân số kế hoạch hoá gia đình…
III KẾT LUẬN
Có thể thấy phải bằng chính các hoạt động thiết thực, cụ thể, vai trò, vị thế của Tổ công đoàn Khoa CNTT sẽ được ghi nhận và đánh giá cao bởi Công đoàn Trường, Đảng
uỷ và Ban giám hiệu Trường Đại học Hà Nội Từ nhận thức sâu sắc về vai trò, vị trí của
tổ chức Công đoàn trong nhà trường, tôi tin tưởng rằng: chính sự phối kết hợp chặt chẽ với chính quyền, chuyên môn và các đoàn thể chính trị, hoạt động công đoàn nhất định
sẽ còn gặt hái nhiều thành công hơn nữa
TÀI LIỆU THAM KHẢO [1] Điều 10 - Hiến pháp nước Cộng hòa Xã hội Chủ nghĩa Việt Nam, 1992
[2] Điều 2 - Luật Công đoàn Việt Nam, 1990
[3] Công đoàn Việt Nam, “Vai trò của công đoàn với việc thực hiện đổi mới căn bản toàn diện giáo dục đại học theo nghị quyết TW8”, Kỷ yếu hội thảo Công đoàn 2017
Trang 28ỨNG DỤNG HỌC MÁY XÂY DỰNG MODULE GIẢI BÀI TOÁN
DỰ ĐOÁN GIÁ BẤT ĐỘNG SẢN
Đỗ Thùy Dương
Trường Đại học Hà Nội
Tóm tắt – Bài báo cáo này đưa ra phương pháp tiếp cận bài toán dự đoán giá bất động
sản, thông qua học máy, xây dựng mô đun tính toán, cực tiểu hàm lỗi
Từ khóa – Học máy, Học có giám sát, giá bất động sản, scikit-learn, python
1 Định nghĩa Học Máy:
Những năm gần đây, AI - Artificial Intelligence (Trí Tuệ Nhân Tạo), và cụ thể hơn là Machine Learning (Học Máy hoặc Máy Học) nổi lên như một bằng chứng của cuộc cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 - năng lượng điện, 3 - công nghệ thông tin) Trí Tuệ Nhân Tạo đang len lỏi vào mọi lĩnh vực trong đời sống
mà có thể chúng ta không nhận ra Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trong ảnh của Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, …, chỉ là một vài trong vô vàn những ứng dụng của AI/Machine Learning Machine Learning là một lĩnh vực nhỏ của Khoa Học Máy Tính, nó có khả năng
tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể
Hình dưới minh họa sự khác nhau giữa Lập trình truyền thống và Học máy
2 Phân loại Học máy:
Có hai cách phân loại Cách một là dựa trên phương thức học, cách hai dựa trên chức năng Trong bài viết này sẽ tập trung cách phân loại thứ nhất Với cách phân loại này, Học máy được chia làm ba nhóm chính: Học có giám sát, học không giám sát và học bán giám sát
Trang 292.1 Học có giám sát (Supervised Learning):
là thuật toán dự đoán đầu ra của một dữ liệu mới dựa trên các cặp (input,
outcome) đã biết từ trước Cặp dữ liệu này còn được gọi là (data, label), tức (dữ liệu, nhãn) Supervised learning là nhóm phổ biến nhất trong các thuật toán Machine
Learning
Một cách toán học, Supervised learning là khi chúng ra có một tập hợp biến đầu vào X={x1,x2,…,xN} và một tập hợp nhãn tương ứng Y={y1,y2,…,yN}, trong đó xi,yi
là các vector Các cặp dữ liệu biết trước (xi,yi)∈X×Y được gọi là tập training data (dữ
liệu huấn luyện) Từ tập traing data này, chúng ta cần tạo ra một hàm số ánh xạ mỗi phần tử từ tập X sang một phần tử (xấp xỉ) tương ứng của tập Y:
Yi ≈ f(xi), ∀i=1,2,…,N
Mục đích là xấp xỉ hàm số f thật tốt để khi có một dữ liệu x mới, chúng ta có thể tính được nhãn tương ứng của nó y=f(x)
Thuật toán supervised learning còn được tiếp tục chia nhỏ ra thành hai loại chính:
Classification (Phân loại)
Một bài toán được gọi là classification nếu các label của input data được chia
thành một số hữu hạn nhóm Ví dụ: Gmail xác định xem một email có phải là spam hay không; các hãng tín dụng xác định xem một khách hàng có khả năng thanh toán nợ hay không Ba ví dụ phía trên được chia vào loại này
Regression (Hồi quy)
Nếu label không được chia thành các nhóm mà là một giá trị thực cụ thể Ví dụ:
một căn nhà rộng x m2, có y phòng ngủ và cách trung tâm thành phố z km sẽ có giá là bao nhiêu?
2.2 Unsupervised Learning (Học không giám sát)
Trong thuật toán này, chúng ta không biết được outcome hay nhãn mà chỉ có dữ
liệu đầu vào Thuật toán unsupervised learning sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và tính toán
Một cách toán học, Unsupervised learning là khi chúng ta chỉ có dữ liệu vào X mà
không biết nhãn Y tương ứng
Những thuật toán loại này được gọi là Unsupervised learning vì không giống như Supervised learning, chúng ta không biết câu trả lời chính xác cho mỗi dữ liệu đầu vào
Trang 30Cụm không giám sát được đặt tên theo nghĩa này
Các bài toán Unsupervised learning được tiếp tục chia nhỏ thành hai loại:
2.3 Reinforcement Learning (Học Củng Cố)
Reinforcement learning là các bài toán giúp cho một hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất (maximizing the performance) Hiện tại, Reinforcement learning chủ yếu được áp dụng vào Lý Thuyết Trò Chơi (Game Theory), các thuật toán cần xác định nước đi tiếp theo để đạt được điểm số cao nhất
3 Xây dựng module giải quyết bài toán dự đoán giá bất động sản
3.1 Hướng giải quyết:
Bài toán này là bài toán học có giám sát Tôi chọn model hồi quy tuyến tính để tính toán giá nhà đất Bản chất của hồi quy chính là tìm ra mối quan hệ nào đó giữa biến
phụ thuộc y (dependence) (giá nhà đất) và một hay nhiều biến độc lập x (independence)
(các thuộc tính của ngôi nhà)
Hệ thống cần được cài đặt các gói sau:
- Python (phiên bản hiện tại 3.8.2)
- Scikit learn: (viết tắt là sklearn) là một thư viện mã nguồn mở dành cho
Machine Learning và cũng được sử dụng trong Data Science Đây là công cụ rất mạnh
mẽ và thông dụng với cộng đồng Python, được thiết kế trên nền NumPy và SciPy Scikit-learn chứa hầu hết các thuật toán Machine Learning hiện đại nhất, đi kèm với documentations, luôn được cập nhật Công cụ này cung cấp việc sử dụng API và tìm kiếm ngẫu nhiên dễ dàng Nhưng lợi thế chính trong việc sử dụng Scikit-Learn, là tốc
độ trong khi thực hiện các đánh giá khác nhau trong bộ dataset
Trang 31- Các gói hỗ trợ: pip, wheel, pandas
3.3 Các bước thực hiện:
3.3.1 Đọc dữ liệu đầu vào:
Dữ liệu được lưu trong file home_data.cvs, trong đó lưu rất nhiều thuộc tính của
nhà đất và giá của chúng, một số thuộc tính đặc trưng như:
Num_bed: số phòng ngủ
Year_built: năm xây dựng
Longtitude, latitude: Kinh độ, vĩ độ của nhà đất
Trang 32return dataFile
Hàm trên sử dụng thư viện Pandas để load dữ liệu từ file CSV vào dưới dạng
DataFrame
3.3.2 Lựa chọn thuộc tính và phân chia tập dữ liệu mẫu
Tư tưởng của chúng ta là sẽ phân chia tập dữ liệu mẫu thành hai tập con là tập dữ liệu huấn luyện và tập dữ liệu kiểm tra Việc này sử dụng tư tưởng của kiểm tra chéo (cross validation) Ngoài ra, trong tập dữ liệu mẫu có rất nhiều thuộc tính có ý nghĩa và
có thể khai thác thêm, ví dụ như từ kinh độ và vĩ độ chúng ta có thể tìm thêm các thuộc tính như khoảng cách trung tâm thành phố, số bệnh viện lân cận Tuy nhiên để cho đơn giản, chúng ta lựa chọn một cách chủ quan một số thuộc tính mà mình cho rằng có thể có ảnh hưởng đến giá của bất động sản như số phòng ngủ, số phòng tắm, năm xây dựng và diện tích
if name == " main ":
data = getData()
if data is not None:
# Selection few attributes
Trang 33# Split data to training test and testing test
X_train, X_test, Y_train, Y_test = train_test_split(np.array(X), np.array(Y),
test_size=0.2)
Đoạn code bên trên phân chia tập dữ liệu thành 80% cho training và 20% cho
testing Việc cần làm tiếp theo là viết một hàm chạy Phương pháp hồi quy tuyến tính
3.3.3 Áp dụng mô hình hồi quy tuyến tính
Về cơ bản, việc huấn luyện theo mô hình tuyến tính bản chất là đi tìm các giá
trị m và b sao cho cực tiểu hóa hàm lỗi sau:
Chúng ta sử dụng gói thư viện Scikit-learn của Python để làm việc này như sau:
def linearRegressionModel(X_train, Y_train, X_test, Y_test):
linear = linear_model.LinearRegression()
# Training process
linear.fit(X_train, Y_train)
# Evaluating the model
score_trained = linear.score(X_test, Y_test)
return score_trained
Hàm trên chạy mô hình hồi quy tuyến tính trên tập dữ liệu huấn luyện
gồm X_train đại diện cho tập các thuộc tính của bất động sản và Y_train đại diện cho giá
của nhà Hàm trả về một giá trị đánh giá điểm của mô hình khi chạy trên tập kiểm tra Có nghĩa là điểm càng tiến gần đến 1 thì mô hình của chúng ta càng tốt
3.3.4 Áp dụng mô hình hồi quy LASSO dạng chuẩn L1
Các dạng chuẩn (Regularization) thường được đưa vào các mô hình để nhằm giảm
thiểu hiện tượng over-fitting Over-fitting xảy ra khi một mô hình của chúng ta lựa chọn
Trang 34đang cố gắng giảm thiểu tối đa lỗi trên tập dữ liệu huấn luyện nhưng nó lại làm cho lỗi trên tập dữ liệu kiểm tra tăng lên Và LASSO ra đời để hạn chế điều đó Nó bổ sung
thêm vào hàm lỗi của mô hình tuyến tính một đại lượng phạt lỗi lamda
Chúng ta viết một hàm tính toán điểm của phương pháp LASSO như sau:
def lassoRegressionModel(X_train, Y_train, X_test, Y_test):
lasso_linear = linear_model.Lasso(alpha=1.0)
# Training process
lasso_linear.fit(X_train, Y_train)
# Evaluating the model
score_trained = lasso_linear.score(X_test, Y_test)
return score_trained
3.3.5 Đánh giá hai mô hình hồi quy vừa áp dụng
Trong hàm main chúng ta chạy và so sánh hai hàm như sau:
# Linear Regression Model
linearScore = linearRegressionModel(X_train, Y_train, X_test, Y_test)
print ('Linear Score = ' , linearScore)
# LASSO Regression Model
lassoScore = lassoRegressionModel(X_train, Y_train, X_test, Y_test)
print ('Lasso Score = ', lassoScore)
Kết quả chạy như sau:
TÀI LIỆU THAM KHẢO
[1] Vũ Hữu Tiệp, Machine Learning cơ bản, 02/2018
[2] NguyenDuong, Linear Regression – Hồi quy tuyến tính trong Machine Learning,
Trang 35[3] Jason Brownlee, Metrics to evaluate machine learning algoriths in Python, [Online], https://machinelearningmastery.com/metrics-evaluate-machine-learningalgorithms-python/, 05/2016
[4] Phạm Văn Toàn, Mô hình hồi quy ứng dụng trong bài toán dự đoán giá bất động sản - Machine Learning (phần 2), [Online] https://viblo.asia/p/mo-hinh-hoi-quy-ung-dung-trong-bai-toan-du-doan-gia-bat-dong-san-machine-learning-phan-2-
xQMkJLrzGam
[5] Alvira Swalin, Choosing the right metric for evaluation Machine Learning Models – Part 1, [Online], https://medium.com/usf-msds/choosing-the-right-metric-formachine-learning-models-part-1-a99d7d7414e4, 07/2018
[6] Nguyễn Phúc Lương, Machine Learning – Linear Regression with one variable, [Online] https://viblo.asia/p/machine-learning-linear-regression-with-one-variable-yMnKMqdgK7P, 05/2017
[7] Nguyễn Thành Nam, Giới thiệu về kỹ thuật xuống dốc, [Online], https://www.vithon.org/2018/04/may-hoc-pho-thong-2.html, 04/2018
[8] Christian Pascual, Understanding regression error metrics, [Online], https://www.dataquest.io/blog/understanding-regression-error-metrics, 09/2018
Trang 36NGHIÊN CỨU VÀ THỬ NGHIỆM THUẬT TOÁN
PHÂN CỤM K-MEANS
Đỗ Thuỳ Dương
Trường Đại học Hà nội
Tóm tắt - Bài báo cáo này đưa ra các bước xây dựng thuật toán phân cục K-means và
sử dụng thư viện có sẵn scikit-learn để chạy thử nghiệm thuật toán, đưa ra các hạn chế và ưu
điểm của thuật toán này
Từ khoá - Học không giám sát, phân cụm K-means, scikit-learn, python
1 Giới thiệu
Nếu thuật toán Linear Regression - là thuật toán đơn giản nhất trong học máy có giám sát thì một trong những thuật toán cơ bản nhất trong học máy không giám sát là thuật toán phân cụm K-means
Trong thuật toán K-means clustering, chúng ta không biết nhãn (label) của từng điểm dữ liệu Mục đích là làm thể nào để phân dữ liệu thành các cụm (cluster) khác nhau sao cho dữ liệu trong cùng một cụm có tính chất giống nhau
Ví dụ: Một công ty muốn tạo ra những chính sách ưu đãi cho những nhóm khách hàng khác nhau dựa trên sự tương tác giữa mỗi khách hàng với công ty đó (số năm là khách hàng; số tiền khách hàng đã chi trả cho công ty; độ tuổi; giới tính; thành phố; nghề nghiệp; …) Giả sử công ty đó có rất nhiều dữ liệu của rất nhiều khách hàng nhưng chưa có cách nào chia toàn bộ khách hàng đó thành một số nhóm/cụm khác nhau Áp dụng thuật toán phân cụm K-means, chúng ta có thể phân nhóm các khách hàng Sau khi đã phân ra được từng nhóm, nhân viên công ty đó có thể lựa chọn ra một vài khách hàng trong mỗi nhóm để quyết định xem mỗi nhóm tương ứng với nhóm khách hàng nào Phần việc cuối cùng này cần sự can thiệp của con người, nhưng lượng công việc đã được rút gọn đi rất nhiều
Ý tưởng đơn giản nhất về cluster (cụm) là tập hợp các điểm ở gần nhau trong một không gian nào đó (không gian này có thể có rất nhiều chiều trong trường hợp thông tin
về một điểm dữ liệu là rất lớn) Hình bên dưới là một ví dụ về 3 cụm dữ liệu (từ giờ tôi
sẽ viết gọn là cluster)
Trang 37Bài toán với 3 clusters
Giả sử mỗi cluster có một điểm đại diện (center) màu vàng Và những điểm xung quanh mỗi center thuộc vào cùng nhóm với center đó Một cách đơn giản nhất, xét một điểm bất kỳ, ta xét xem điểm đó gần với center nào nhất thì nó thuộc về cùng nhóm với center đó
Bài toán trở thành: Trên một vùng biển hình vuông lớn có ba đảo hình vuông, tam giác, và tròn màu vàng như hình trên Một điểm trên biển được gọi là thuộc lãnh hải của một đảo nếu nó nằm gần đảo này hơn so với hai đảo kia Hãy xác định ranh giới lãnh hải của các đảo
Hình dưới đây là một hình minh họa cho việc phân chia lãnh hải nếu có 5 đảo khác nhau được biểu diễn bằng các hình tròn màu đen:
Phân vùng lãnh hải của mỗi đảo Các vùng khác nhau có màu sắc khác nhau
Chúng ta thấy rằng đường phân định giữa các lãnh hải là các đường thẳng (các
Trang 38đường trung trực của các cặp điểm gần nhau) Vì vậy, lãnh hải của một đảo sẽ là một hình đa giác
Cách phân chia này trong toán học được gọi là Voronoi Diagram
Trong không gian ba chiều, lấy ví dụ là các hành tinh, thì (tạm gọi là) lãnh không của mỗi hành tinh sẽ là một đa diện Trong không gian nhiều chiều hơn, chúng ta
sẽ có những thứ (mà tôi gọi là) siêu đa diện (hyperpolygon)
2 Tóm tắt thuật toán
Đầu vào: Dữ liệu X và số lượng cluster cần tìm
Đầu ra: Các center M và label vector cho từng điểm dữ liệu Y
B1 Chọn K điểm bất kỳ làm các center ban đầu
B2 Phân mỗi điểm dữ liệu vào cluster có center gần nó nhất
B3 Nếu việc gán dữ liệu vào từng cluster ở bước 2 không thay đổi so với vòng lặp trước nó thì ta dừng thuật toán
B4 Cập nhật center cho từng cluster bằng cách lấy trung bình cộng của tất các các điểm dữ liệu đã được gán vào cluster đó sau bước 2
B5 Quay lại bước 2
Chúng ta có thể đảm bảo rằng thuật toán sẽ dừng lại sau một số hữu hạn vòng lặp
Vì hàm mất mát là một số dương và sau mỗi bước 2 hoặc 3, giá trị của hàm mất mát bị giảm đi Nếu một dãy số giảm và bị chặn dưới thì nó hội tụ! Hơn nữa, số lượng cách phân nhóm cho toàn bộ dữ liệu là hữu hạn nên đến một lúc nào đó, hàm mất mát sẽ không thể thay đổi, và chúng ta có thể dừng thuật toán tại đây
3 Ví dụ trên Python
Giới thiệu bài toán
Chúng ta sẽ làm một ví dụ đơn giản Trước hết, chúng ta chọn center cho từng cluster và tạo dữ liệu cho từng cluster bằng cách lấy mẫu theo phân phối chuẩn có kỳ vọng là center của cluster đó và ma trận hiệp phương sai (covariance matrix) là ma trận đơn vị
Tiếp theo, ta tạo dữ liệu bằng cách lấy các điểm theo phân phối chuẩn có kỳ vọng tại các điểm có tọa độ (2, 2), (8, 3) và (3, 6), ma trận hiệp phương sai giống nhau và là
ma trận đơn vị Mỗi cluster có 500 điểm (Chú ý rằng mỗi điểm dữ liệu là một hàng của
Trang 39Sử dụng thư viện scikit-learning:
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
print('Centers found by scikit-learn:')
Trang 404 Thảo luận
Thuật toán K-means clustering có một vài hạn chế sau:
- Chúng ta cần biết số lượng cluster cần clustering
chúng ta cần biết đại lượng K là số lượng clusters Trong thực tế, nhiều trường hợp chúng ta không xác định được giá trị này (Có một số phương pháp giúp xác định số lượng clusters)
- Nghiệm cuối cùng phụ thuộc vào các centers được khởi tạo ban đầu
Tùy vào các center ban đầu mà thuật toán có thể có tốc độ hội tụ rất chậm hoặc thậm chí cho chúng ta nghiệm không chính xác (chỉ là local minimum - điểm cực tiểu -
mà không phải giá trị nhỏ nhất)
- Các clusters cần có số lượng điểm gần bằng nhau
- Các clusters cần có dạng hình tròn
- Khi một cluster nằm phía trong 1 cluster khác
Đây là ví dụ kinh điển về việc K-means clustering không thể phân cụm dữ liệu Một cách tự nhiên, chúng ta sẽ phân ra thành 4 cụm: mắt trái, mắt phải, miệng, xunh quanh mặt Nhưng vì mắt và miệng nằm trong khuôn mặt nên K-means clustering không thực hiện được:
5 Kết luận
Mặc dù có những hạn chế, K-means clustering vẫn cực kỳ quan trọng trong học máy và là nền tảng cho nhiều thuật toán phức tạp khác sau này Trong các bài báo cáo tiếp theo, tôi sẽ tìm hiểu sâu hơn các ứng dụng của phân cụm K-means trong xử lý ảnh như: Phân nhóm các chữ số viết tay, Tách vật thể (image segmentation), Nén ảnh/dữ liệu (image compression)