Phân bổ công suất truyền trong hệ thống massive mimo sử dụng deep learning

51 2 0
Phân bổ công suất truyền trong hệ thống massive mimo sử dụng deep learning

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TĨM TẮT Đề tài trình bày kiến thức tổng quan kênh truyền vô tuyến, yếu tố ảnh hưởng đến kênh truyền vô tuyến, kỹ thuật MIMO, kỹ thuật Massive MIMO, Deep Learning Nội dung trọng tâm đề tài tìm hiểu cách Deep Learning sử dụng mạng nơ-ron nhân tạo huấn luyện sở liệu lớn có sẵn vị trí thiết bị người dùng công suất truyền đường xuống người dùng tương ứng Để từ muốn thực phân bổ cơng suất cho thiết bị người dùng mới, khơng cần phải tính tốn với cơng thức tối ưu phức tạp mà cần đưa tập liệu vào mạng Ngồi ra, đề tài trình bày hệ thống Massive MIMO, sau mơ lại thơng tin hệ thống diện tích cell, số lượng anten, số lượng người dùng… từ sử dụng Matlab để tìm phân bổ cơng suất đánh giá hiệu suất thiết bị người dùng cell, trình bày cụ thể v MỤC LỤC TRANG PHỤ BÌA TRANG NHIỆM VỤ ĐỒ ÁN i PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ii PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii LỜI CẢM ƠN iv TÓM TẮT .v MỤC LỤC vi DANH MỤC CÁC TỪ VIẾT TẮT viii DANH MỤC CÁC HÌNH ix DANH MỤC CÁC BẢNG .x DANH MỤC CÔNG THỨC xi DANH MỤC CÁC KÝ HIỆU xii CHƯƠNG TỔNG QUAN .1 1.1 GIỚI THIỆU .1 1.2 MỤC TIÊU VÀ YÊU CẦU CỦA ĐỀ TÀI 1.3 GIỚI HẠN ĐỀ TÀI 1.4 PHƯƠNG PHÁP NGHIÊN CỨU .2 1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 1.5.1 Đối tượng nghiên cứu 1.5.2 Phạm vi nghiên cứu 1.6 BỐ CỤC ĐỀ TÀI .3 CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 KÊNH TRUYỀN VÔ TUYẾN 2.1.1 Các tượng ảnh hưởng đến chất lượng kênh truyền vô tuyến 2.1.2 Các kỹ thuật tối ưu kênh truyền 2.2 KỸ THUẬT MIMO 2.2.1 Giới thiệu 2.2.2 Ưu nhược điểm 2.3 HỆ THỐNG MASSIVE MIMO .8 2.3.1 Giới thiệu 2.3.2 Hoạt động Massive MIMO vi 2.4 DEEP LEARNING 11 2.4.1 Hoạt động mạng nơ-ron nhân tạo 12 2.4.2 Các hàm tính tốn lớp mạng nơ-ron (hàm tuyến tính, sigmoid, tanh, relu,elu) 13 CHƯƠNG 17 THIẾT KẾ HỆ THỐNG 17 3.1 MƠ HÌNH MASSIVE MIMO 17 3.1.1 Ước lượng kênh 18 3.1.2 Hiệu suất phổ đường xuống 19 3.1.3 Thiết kế tiền mã hóa 20 3.2 PHÂN BỔ CÔNG SUẤT 21 3.3 PHÂN BỔ CÔNG SUẤT DỰA TRÊN DEEP LEARNING 22 3.4 THÔNG SỐ MÔ PHỎNG 24 3.5 LƯU ĐỒ GIẢI THUẬT 27 CHƯƠNG 28 KẾT QUẢ MÔ PHỎNG VÀ ĐÁNH GIÁ 28 4.1 KẾT QUẢ MÔ PHỎNG 28 4.2 KẾT QUẢ HUẤN LUYỆN BẰNG DEEP LEARNING 31 CHƯƠNG 34 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 34 5.1 KẾT LUẬN 34 5.2 HƯỚNG PHÁT TRIỂN 34 PHỤ LỤC 36 TÀI LIỆU THAM KHẢO 43 vii DANH MỤC CÁC TỪ VIẾT TẮT Chữ Viết Tắt Tiếng Anh Tiếng Việt CDF Cumulative distribution function Hàm phân phối tích lũy CSI Channel State Information Thơng tin kênh DL Downlink Đường xuống FDD Frequency-Division Duplex Song công phân chia theo tần số Multiple Input Multiple Output Multicell Minimum Mean-Squared Error Nhiều đầu vào nhiều đầu MMSE Minimum Mean Square Error Lỗi bình phương trung bình tối thiểu MR Maximum Ratio Tỉ lệ cao RX Receiver Máy thu SE Spectral Efficiency Hiệu suất phổ SINR Signal-to-interferenceplus-noise ratio Tỷ số tín hiệu nhiễu cộng tạp âm SNR Signal to Noise ratio Tỉ số tín hiệu nhiễu TDD Time Division Duplex Song công phân chia theo thời gian UL Uplink Đường lên MIMO M-MMSE viii Lỗi bình phương trung bình tối thiểu tất cell DANH MỤC CÁC HÌNH Hình 2.1 Hiệu ứng đa đường Hình 2.2 Mơ hình hệ thống MIMO Hình 2.3 Đường lên đường xuống tín hiệu mơ hình Massive MIMO Hình 2.4 Cấu trúc ước lượng kênh truyền FDD [8] 10 Hình 2.5 Cấu trúc ước lượng kênh truyền TDD [8] 11 Hình 2.6 Một nơ-ron nhân tạo có lớp ngõ vào ngõ với lớp ẩn 12 Hình 2.7 Mơ tả hoạt động mạng nơ-ron 12 Hình 2.8 Hàm tuyến tính 13 Hình 2.9 Đồ thị hàm Sigmoid 14 Hình 2.10 Đồ thị hàm 15 Hình 2.11 Hàm Relu 15 Hình 2.12 Hàm elu 16 Hình 3.1 Mơ hình Massive MIMO [10] 17 Hình 3.2 Tín hiệu nhiễu anten khác cell tác động vào [10] 18 Hình 3.3 Minh họa việc truyền đường xuống cell j cell l [10] 19 Hình 4.1 Hình giao diện mơ 100 vị trí nhẫu nhiên Matlab 27 Hình 4.2 Kết mô Max Product SINR 28 Hình 4.3 Kết mơ Max-min fairness 29 Hình 4.4 Kết mô M-MMSE max prod sử dụng với mạng nơ-ron tính tốn với Matlab 30 Hình 4.5 Kết mơ MR max prod sử dụng với mạng mạng nơ-ron tính toán với Matlab 31 ix DANH MỤC CÁC BẢNG Bảng 1: Số liệu mô hệ thống Massive MIMO 24 Bảng 2: Số liệu mô mạng nơ-ron huấn luyện Max product SINR 25 Bảng 3: Số liệu CDF Max product SINR tương ứng với SE người dùng 28 Bảng 4: Số liệu CDF Max-min fairness tương ứng với SE người dùng 29 x DANH MỤC CƠNG THỨC Cơng thức 3.1: Đáp ứng kênh 17 Công thức 3.2: Mức tăng kênh trung bình anten 17 Công thức 3.3: Ước lượng kênh truyền 18 Công thức 3.4: Hiệu suất phổ đường xuống 19 Công thức 3.5: SINR 19 Công thức 3.6: Vectơ tiền mã hóa 20 Cơng thức 3.7: Vectơ kết hợp tính MR 20 Cơng thức 3.8: Vectơ kết hợp tính M-MMSE 21 Công thức 3.9: Hiệu suất phổ đường xuống sau kết hợp công thức 21 Công thức 3.10: Mức tăng kênh trung bình 20 Cơng thức 3.11: Mức tăng nhiễu trung bình 21 Cơng thức 3.12: Tính max-min fairness 21 Cơng thức 3.13: Tính max product SINR 21 Công thức 3.14: Công thức huấn luyện mạng nơ-ron Deep learning 23 xi DANH MỤC CÁC KÝ HIỆU Ký hiệu [.]T Mô tả Chuyển vị ma trận vectơ [.]H Chuyển vi liên hợp ma trận vectơ {.}i Phần tử thứ i vectơ nằm ngoặc {.}ij Phần tử nằm dòng i cột j ma trận nằm ngoặc |.| Trị tuyệt đối số thực ||.|| Chuẩn vectơ A Biểu thị cho ma trận A-1 Nghịch đảo ma trận A E{.} Toán tử kỳ vọng xii CHƯƠNG TỔNG QUAN 1.1 GIỚI THIỆU Massive MIMO đề cập đến công nghệ mạng khơng dây trạm sở trang bị số lượng anten lớn để phục vụ vô số thiết bị người dùng cách ghép kênh không gian [1], [2] Sự phát triển thú vị xảy năm gần Trong cơng nghiệp, cơng nghệ tích hợp vào tiêu chuẩn 5G [3] Trong nghiên cứu [4], vấn đề ô nhiễm thí điểm lâu dài, cho áp đặt giới hạn bản, cuối giải Với lỗi bình phương trung bình tối thiểu (MMSE) việc thu/nhận tia để hỗ trợ truyền đa đường lượng nhỏ kênh không gian tương quan, công suất tăng mà không bị ràng buộc đường lên đường xuống số lượng anten tăng Đề tài nghiên cứu sử dụng Deep learning để giải vấn đề phân bổ công suất max-prod đường xuống mạng Massive MIMO Do truyền cảm hứng từ bùng nổ gần ứng dụng thành công kỹ thuật máy học [5] Đặc biệt, đề tài mong muốn chứng minh vị trí thiết bị người dùng (có thể dễ dàng thu thơng qua hệ thống định vị tồn cầu) sử dụng hiệu mạng nơ-ron để đạt hiệu suất gần tối ưu Điều cho phép giảm đáng kể phức tạp phân bổ cơng suất thực phân bổ công suất thời gian thực, tức theo vị trị khác người dùng Thêm vào đó, việc tạo mạng nơ-ron thuận tiện mẫu huấn luyện dễ dàng có cách chạy thuật tốn tối ưu hóa có sẵn 1.2 MỤC TIÊU VÀ YÊU CẦU CỦA ĐỀ TÀI Mục đích nghiên cứu thơng qua đề tài tìm hiểu xây dựng hệ thống Massive MIMO Đề tài ứng dụng cơng thức tính tốn truyền thống nhằm phân bổ công suất truyền đường xuống từ trạm sở tới người dùng Kết phân bổ lưu trữ tạo thành mẫu Đề tài sử dụng sở liệu lớn nhằm làm mẫu huấn luyện, từ thư viện hàm có sẵn Deep Learning để thực phân bổ công suất max-prod đường xuống mạng Massive MIMO Trong đó, đề tài sử dụng mạng nơ-ron để tìm hiểu vị trí thiết bị người dùng cách phân bổ công suất tối ưu sau sử dụng để dự đốn cách phân bổ cơng suất cho vị trí người dùng Qua đó, đề tài nhằm chứng sử dụng Deep Learning cải thiện đáng kể hiệu suất phân bổ công suất, so với phương pháp định hướng tối ưu hóa truyền thống 1.3 GIỚI HẠN ĐỀ TÀI Để huấn luyện mạng nơ-ron tốt, nhóm sử dụng sở liệu gồm nhiều mẫu tính tốn sẵn Nhóm thêm mẫu khơng thể tự tạo hết mẫu nhiều 1.4 PHƯƠNG PHÁP NGHIÊN CỨU Để hoàn thành đề tài, việc thực đề tài theo phương pháp thuận lợi cho việc định hướng đề tài cần làm có vấn đề cần tập trung nghiên cứu, vấn đề nhóm phải áp dụng phương pháp cho phù hợp? Dưới số phương pháp nhóm thực xun suốt q trình thực đề tài  Nghiên cứu tài liệu  Phân tích, tổng hợp để trình bày vấn đề  Liệt kê, sưu tầm tài liệu 1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU Với mục tiêu đề tài trên, nhóm cần phải xác định đối tượng nghiên cứu gì, phạm vi nghiên cứu đến đâu để từ thực nghiên cứu đề tài cách có hệ thống dễ dàng trình bày cách hiệu 1.5.1 Đối tượng nghiên cứu  Kênh truyền vô tuyến, MIMO, Massive MIMO, Deep Learning Hình 4.2 Kết mơ Max Product SINR Nhận xét: Ta nhận thấy với phương pháp max product SINR, đường cong MR đạt hiệu suất cao so với M-MMSE Bảng thể mức hiệu suất phổ MR có hàm CDF cao hơn, tức xác suất xảy lớn so với M-MMSE Điều có nghĩa với tiền mã hóa MR, hiệu suất phân bổ người dùng đạt hiệu cao mức xác suất xảy lớn, so sánh với M-MMSE Bảng Số liệu CDF Max product SINR tương ứng với SE người dùng SE[bit/s/Hz] CDF Max product SINR M-MMSE MR 0.3265 0.4034 0.5704 0.6542 0.7498 0.8336 0.8793 0.9362 0.965 0.99 29  MAX-MIN Kết mô max-min fairness so sánh hai phương pháp MR MMMSE Hình 4.3 Kết mô Max-min fairness Nhận xét: Ta nhận thấy với phương pháp max fairness, đường cong MR đạt hiệu suất cao so với M-MMSE Bảng thể mức hiệu suất MR có hàm CDF cao tức xác suất xảy lớn so với M-MMSE Điều có nghĩa với phương pháp MR, hiệu suất phân bổ người dùng đạt hiệu cao mức xác suất xảy lớn so sánh với M-MMSE Tương tự với thành phần fairness (độ tin cậy), ta thấy đường cong MR tốt so với M-MMSE Bảng Số liệu CDF Max-min fairness tương ứng với SE người dùng SE[bit/s/Hz] 1.4 CDF Max-min fairness M-MMSE MR 0.3902 0.5397 30 1.6 0.6329 0.7786 1.8 0.8218 0.8999 0.9093 0.98 4.2 KẾT QUẢ HUẤN LUYỆN BẰNG DEEP LEARNING Để đánh giá hiệu suất mạng nơ-ron dựa phân bổ công suất, đề tài minh họa chức phân phối tích lũy (CDF) cơng suất đường xuống thiết bị người dùng Đường liệu phân bổ công suất đường xuống Matlab, kết 330000 mẫu Khi tính tốn với cơng thức tối ưu phức tạp (được đem làm mẫu huấn luyện nơ-ron) Còn đường liệu mạng nơ-ron kết tính tốn nhanh Khi cần đem tập liệu 10000 mẫu vị trí vào mạng nơ-non mơ hình hóa huấn luyện Hình 4.4 cho thấy mạng nơ-ron phù hợp với phương pháp tối ưu với MMMSE 31 Hình 4.4 Kết mơ M-MMSE max prod sử dụng với mạng nơ-ron tính tốn với Matlab Nhận xét: Với phương pháp sử dụng tính tốn với Matlab mạng nơ-ron, ta nhận thấy khơng có khác biệt đáng kể Điều cho thấy mạng nơ-ron hoạt động hiệu với Max product SINR Hình 4.5 Ta thấy đường cong tiền mã hóa MR dùng mạng nơ-ron đạt hiệu cao so với sử dụng phương pháp tính tốn với Matlab Tuy nhiên mong muốn đề tài đường cong trùng Hình 4.5 Kết mơ MR max prod sử dụng với mạng mạng nơ-ron tính tốn với Matlab Nhận xét: Với mức cơng suất thấp ta nhận thấy khác biệt hai phương pháp sử dụng với mạng mạng nơ-ron tính tốn Matlab không đáng kể Nhưng với mức công suất cao (lớn 100W) phương pháp sử dụng tình tốn mạng 32 nơ-ron đạt mức cơng suất cao với xác suất xảy Do việc sử dụng phân bổ công suất với mạng nơ-ron cho hiệu gần tối ưu với mạng nơ-ron Kết trái ngược M-MMSE phức tạp mặt thuật tốn tính tốn MR Do đó, kết phân bổ cơng suất tối ưu theo ngun tắc khó học Nhóm đưa giải thích nguyên nhân với tiền mã hóa MR, cơng suất phân bổ sở đạt tín hiệu tốt Mặc khác, với MMMSE có tính đến tín hiệu gây nhiễu Vì mạng nơ-ron nhận đầu vào công suất tất người dùng mạng, nên tạo hầu hết thông tin M-MMSE sử dụng Kết luận: Với phương pháp max-product, Deep Learning dựa phân bổ cơng suất có độ tính tốn phức tạp đáng kể so với phương pháp truyền thống, đồng thời trì hiệu suất tối ưu với tiền mã hóa M-MMSE gần tối ưu với tiền mã hóa MR 33 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong chương này, đề tài tổng kết đánh giá kết đạt Đồng thời đưa hướng nghiên cứu tiếp tục thực để phát triển đề tài tương lai 5.1 KẾT LUẬN Trong đề tài nghiên cứu mạng nơ-ron nhân tạo để phân bổ công suất đường xuống mạng Massive MIMO với tiền mã hóa MR M-MMSE Trong cách phân bổ cơng suất nghiên cứu, cụ thể max-prod Với phương pháp ta cho thấy rằng, mạng nơ-ron huấn luyện cách học cách phân bổ công suất cho người dùng cell Điều đạt cách sử dụng thơng tin vị trí người dùng mạng, làm giảm đáng kể độ phức tạp thời gian xử lý q trình tối ưu hóa Kết cho thấy Deep Learning hoạt động tốt với M-MMSE với MR Điều có khả thực tế M-MMSE cho phép mạng nơ-ron khai thác hầu hết thơng tin có sẵn Hơn nữa, phương pháp MR khó huấn luyện Trong thực tế, ta cần sử dụng mạng nơ-ron với số lượng thông số tương đối cao để huấn luyện 5.2 HƯỚNG PHÁT TRIỂN Đề tài thực cho hệ thống Massive MIMO tương đối nhỏ với L = cell K = người dùng cell Những phát triển xa làm để mạng nơ-ron hoạt động theo hướng kích thước mạng tăng Hơn nữa, thực tế số lượng người dùng cell thay đổi liên tục Một cách đề xuất để xử lý việc có nhiều mạng nơ-ron trạm gốc cho tất cấu hình có người dùng Tuy nhiên, giải pháp khó mở rộng, 34 nhiên tích hợp Deep Learning cho cơng cụ phân bổ công suất theo thời gian thực Massive MIMO khả thi 35 PHỤ LỤC MÃ NGUỒN CHƯƠNG TRÌNH M-MMSE MAXPROD import numpy as np np.random.seed(1337) import scipy.io as sio import keras from keras.layers import Input, Dense, Lambda, Layer, Activation,Dropout,GaussianNoise from keras.models import Model, Sequential,load_model from keras import backend as K from keras import optimizers, metrics from keras.callbacks import EarlyStopping, ReduceLROnPlateau from keras.initializers import glorot_uniform from matplotlib import pyplot from keras.utils.vis_utils import plot_model from matplotlib import pyplot as plt def create_relu_advanced(max_value=1.): def relu_advanced(x): return K.relu(x, max_value=K.cast_to_floatx(max_value)) return relu_advanced def rmse(y_true, y_pred): return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1)) def rel_mse(x_true, x_pred): loss = K.square(K.abs((x_true - x_pred)/ x_true)) return K.mean(loss, axis=-1) cells = [1, 2, 3, 4] for cell_index in cells: 36 mat_contents = sio.loadmat('dataset_maxprod.mat') # Load input Input = mat_contents['Input_tr_normalized'] #output Output = mat_contents['Output_tr_MMMSE_maxprod_cell_' + str(cell_index)] Input_tr = np.transpose(Input) Output_tr = np.transpose(Output) p_max = mat_contents['Pmax'] # Load maximum power print("Size input vector", Input.shape) print("Size output vector", Output.shape) k = Input.shape# Size of input vector N_input = k[0] # Number of variable to optimize N_tr = k[1] # Number of training setups N_max_epoch = 50 # Maximum number of epochs N_batch_size = 256 # Batch size K_initializer = 'random_normal' B_initializer = 'random_uniform' K_regularizer = None model = Sequential() # Neural network configuration model.add(Dense(512, activation='elu', name = 'layer1', input_shape=(N_input,), kernel_initializer = K_initializer, bias_initializer=B_initializer)) model.add(Dense(256, activation='elu', name = 'layer2', kernel_initializer =K_initializer, bias_initializer=B_initializer)) model.add(Dense(128, activation='elu', name = 'layer3', kernel_initializer = K_initializer, bias_initializer=B_initializer)) model.add(Dense(128, activation='elu', name = 'layer4', kernel_initializer =K_initializer, bias_initializer=B_initializer)) #model.add(Dense(32, activation='elu', name='layer5', kernel_initializer=K_initializer, bias_initializer=B_initializer)) model.add(Dense(5, activation='elu', name = 'layer6', kernel_initializer = K_initializer, bias_initializer=B_initializer)) 37 model.add(Dense(6, activation='linear', name = 'layer7', trainable= False)) model.get_layer('layer7').set_weights((np.column_stack([np.identity(5), np.ones(5)]), np.zeros(6))) print(model.summary()) # Tối ưu hóa adam = optimizers.Adam(lr=0.01, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.1) early_stopping = EarlyStopping(monitor='val_loss', min_delta=0., patience=50, verbose=0, mode='auto') callback = [early_stopping] model.compile(loss=rel_mse, optimizer='adam', metrics=[rmse,'mse']) K.set_value(model.optimizer.lr, 0.001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.0001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.0001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=10*N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.00001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=10*N_batch_size, callbacks=callback) result1 = model.evaluate(Input_tr,Output_tr) print('loss',result1) plt.figure(figsize=(8,6)) plt.plot(history.history['loss']) plt.plot(history.history['val_loss']) plt.xlabel('epoch') plt.ylabel('value') plt.legend(['train', 'validation'], loc='upper left') plt.title('model train vs validation loss') 38 plt.show() model.save('NN_MMMSE_maxprod_cell_'+ str(cell_index) +'.h5') # Test mạng nơ-ron mẫu liệu mat_contents = sio.loadmat('testset_maxprod.mat') Input_test = mat_contents['Input_tr_normalized'] # Load data # Chạy neural network output_NN = model.predict(np.transpose(Input_test)) print(output_NN) # Lưu kết output file Matlab sio.savemat('pow_MMMSE_maxprod_cell_'+ str(cell_index) +'.mat', {'Output_test_' + str(cell_index): np.transpose(output_NN)}) MR MAXPROD import numpy as np np.random.seed(1337) import pdb import scipy.io as sio import keras from keras.layers import Activation,Dropout,GaussianNoise Input, Dense, Lambda, from keras.models import Model, Sequential,load_model from keras import backend as K from keras import optimizers, metrics from keras.callbacks import EarlyStopping, ReduceLROnPlateau from keras.initializers import glorot_uniform import matplotlib.pyplot as plt from keras.utils.vis_utils import plot_model def create_relu_advanced(max_value=1.): def relu_advanced(x): return K.relu(x, max_value=K.cast_to_floatx(max_value)) return relu_advanced 39 Layer, def rmse(y_true, y_pred): return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1)) def rel_mse(x_true, x_pred): loss = K.square(K.abs((x_true - x_pred)/ x_true)) return K.mean(loss, axis=-1) cells = [1, 2, 3, 4] # cell indexes for cell_index in cells: mat_contents = sio.loadmat('dataset_maxprod.mat') # Load input Input = mat_contents['Input_tr_dB_normalized'] # row numbers input set size columns number training set size #output Output = mat_contents['Output_tr_MR_maxprod_cell_' + str(cell_index)] Input_tr = np.transpose(Input) Output_tr = np.transpose(Output) p_max = mat_contents['Pmax'] # Load maximum power print("Size input vector", Input.shape) print("Size output vector", Output.shape) k = Input.shape # Size of input vector N_input = k[0] # Number of variable to optimize N_tr = k[1] # Number of training setups N_max_epoch = # Maximum number of epochs N_batch_size = 256 # Batch size K_initializer = 'glorot_uniform' B_initializer = 'zeros' K_regularizer = None model = Sequential() # Neural network configuration model.add(Dense(512, activation='elu', name = 'layer1', input_shape=(N_input,), kernel_initializer = K_initializer, bias_initializer=B_initializer)) 40 model.add(Dense(256, activation='elu', name = 'layer2', kernel_initializer =K_initializer, bias_initializer=B_initializer)) model.add(Dense(128, activation='elu', name = 'layer3', kernel_initializer = K_initializer, bias_initializer=B_initializer)) model.add(Dense(128, activation='elu', name = 'layer4', kernel_initializer =K_initializer, bias_initializer=B_initializer)) #model.add(Dense(32, activation='elu', name='layer5', kernel_initializer=K_initializer, bias_initializer=B_initializer)) model.add(Dense(5, activation='elu', name = 'layer6', kernel_initializer = K_initializer, bias_initializer=B_initializer)) model.add(Dense(6, activation='linear', name = 'layer7', trainable= False)) model.get_layer('layer7').set_weights((np.column_stack([np.identity(5), np.ones(5)]), np.zeros(6))) print(model.summary()) adam = optimizers.Adam(lr=0.01, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.1) early_stopping = EarlyStopping(monitor='val_loss', min_delta=0., patience=50, verbose=0, mode='auto') # Early stopping callback = [early_stopping] model.compile(loss=rel_mse, optimizer='adam', metrics=[rmse]) K.set_value(model.optimizer.lr, 0.001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.0001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.0001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=10*N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.00001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=10*N_batch_size, callbacks=callback) result1 = model.evaluate(Input_tr,Output_tr) 41 print('loss',result1) plt.figure(figsize=(8,6)) plt.plot(history.history['loss']) plt.plot(history.history['val_loss']) plt.xlabel('epoch') plt.ylabel('value') plt.legend(['train', 'validation'], loc='upper left') plt.title('model train vs validation loss') plt.show() model.save('NN_MR_maxprod_cell_'+ str(cell_index) +'vReduced128.h5') # Test mạng nơ-ron mẫu liệu mat_contents = sio.loadmat('testset_maxprod.mat') Input_test = mat_contents['Input_tr_dB_normalized'] # Load data output_NN = model.predict(np.transpose(Input_test)) # Run the neural network print(output_NN) # Lưu kết output file Matlab sio.savemat('pow_MR_maxprod_cell_'+ str(cell_index) +'vReduced128.mat', {'Output_test_' + str(cell_index): np.transpose(output_NN)}) 42 TÀI LIỆU THAM KHẢO [1] T L Marzetta, “Noncooperative cellular wireless with unlimited numbers of base station antennas”, vol 9, no 11, pp 3590–3600, 2010 [2] E G Larsson, F Tufvesson, O Edfors, and T L Marzetta, “Massive MIMO for next generation wireless systems”, IEEE Commun Magazine, vol 52, no 2, pp 186– 195, Feb 2014 [3] S Parkvall, E Dahlman, A Furuskar, and M Frenne, “NR: The new 5G ă radio access technology, IEEE Communications Standards Magazine, vol 1, no 4, pp 24–30, Dec 2017 [4] E Bjornson, J Hoydis, and L Sanguinetti, “Massive MIMO has unlimited capacity”, IEEE Transactions on Wireless Communications, vol 17, no 1, pp 574– 590, 2018 [5] I Goodfellow, Y Bengio, and A Courville, “Deep Learning”, MIT Press, 2016 [6] Huỳnh Quốc Anh, “Phân tích chất lượng hệ thống MIMO-ACO-OFDM quang vô tuyến”, Luận văn thạc sĩ trường ĐH Khoa Học Tự Nhiên, 2017 [7] Thomas L Marzetta, Erik G Larsson, Hong Yang, Hien Quoc Ngo, “Fundamentals of Massive MIMO”, Cambridge University Press, 2016 [8] Hien Quoc Ngo, “Fundamentals and System Design”, Linköping Studies in Science and Technology, Dissertations, 2015 [9] Simon Haykin, “Neural Network and Learning Machines” (Third Edition), 2008 [10] Emil Bjornson, Jakob Hoydis, and Luca Sanguinetti, “Massive MIMO ¨ networks: Spectral, energy, and hardware efficiency”, Foundations and Trends R in Signal Processing, vol 11, no 3-4, pp 154–655, 2017 43 ... dựng hệ thống Massive MIMO Đề tài ứng dụng cơng thức tính tốn truyền thống nhằm phân bổ công suất truyền đường xuống từ trạm sở tới người dùng Kết phân bổ lưu trữ tạo thành mẫu Đề tài sử dụng. .. sẵn Deep Learning để thực phân bổ công suất max-prod đường xuống mạng Massive MIMO Trong đó, đề tài sử dụng mạng nơ-ron để tìm hiểu vị trí thiết bị người dùng cách phân bổ công suất tối ưu sau sử. .. cơng suất truyền, nhiễu  Các cơng thức mơ mơ hình Massive MIMO  Các mơ hình mạng nơ-ron, thư viện có sẵn Deep learning keras 1.6 BỐ CỤC ĐỀ TÀI Đề tài “PHÂN BỔ CÔNG SUẤT TRUYỀN TRONG HỆ THỐNG MASSIVE

Ngày đăng: 07/06/2022, 23:19

Tài liệu cùng người dùng

Tài liệu liên quan