Repository: XinzeZhang/HUST-PhD-Thesis-Latex Branch: main Commit: be7d559349bd Files: 39 Total size: 356.3 KB Directory structure: gitextract_qebl3297/ ├── .gitignore ├── .vscode/ │ └── settings.json ├── HUSTThesis.bst ├── HUSTthesis.cls ├── HUSTtils.sty ├── README.md ├── _ThesisBeamer/ │ ├── .vscode/ │ │ └── settings.json │ ├── beamerthemeBFH.sty │ ├── body/ │ │ ├── cnn.tex │ │ ├── code.tex │ │ ├── intro.tex │ │ ├── last.tex │ │ └── related.tex │ ├── float/ │ │ └── ch.cnn/ │ │ ├── data.tex │ │ ├── mape.tex │ │ └── time.tex │ └── slide.tex ├── body/ │ ├── appendix/ │ │ └── app.tex │ ├── chapter/ │ │ ├── ack.tex │ │ ├── cnn.tex │ │ ├── intro.tex │ │ ├── overview.tex │ │ └── univ.tex │ └── cover.tex ├── float/ │ ├── ch.cnn/ │ │ ├── data.tex │ │ ├── mape.tex │ │ ├── rmse.tex │ │ ├── smape.tex │ │ ├── std.tex │ │ └── time.tex │ └── ch.univ/ │ ├── loader.tex │ ├── method.tex │ ├── model.tex │ ├── tune.tex │ └── wrapper.tex ├── main.tex └── ref/ ├── finddupls.pl ├── sorted_titles.txt └── thesis.bib ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ # File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig # Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode,macos,latex # Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode,macos,latex ### LaTeX ### ## Core latex/pdflatex auxiliary files: *.aux *.lof *.log *.lot *.fls *.out *.toc *.fmt *.fot *.cb *.cb2 .*.lb main.pdf _ThesisBeamer/slide.pdf ## Intermediate documents: *.dvi *.xdv *-converted-to.* # these rules might exclude image files for figures etc. # *.ps # *.eps # *.pdf ## Generated if empty string is given at "Please type another file name for output:" .pdf ## Bibliography auxiliary files (bibtex/biblatex/biber): *.bbl *.bcf *.blg *-blx.aux *-blx.bib *.run.xml ## Build tool auxiliary files: *.fdb_latexmk *.synctex *.synctex(busy) *.synctex.gz *.synctex.gz(busy) *.pdfsync ## Build tool directories for auxiliary files # latexrun latex.out/ ## Auxiliary and intermediate files from other packages: # algorithms *.alg *.loa # achemso acs-*.bib # amsthm *.thm # beamer *.nav *.pre *.snm *.vrb # changes *.soc # comment *.cut # cprotect *.cpt # elsarticle (documentclass of Elsevier journals) *.spl # endnotes *.ent # fixme *.lox # feynmf/feynmp *.mf *.mp *.t[1-9] *.t[1-9][0-9] *.tfm #(r)(e)ledmac/(r)(e)ledpar *.end *.?end *.[1-9] *.[1-9][0-9] *.[1-9][0-9][0-9] *.[1-9]R *.[1-9][0-9]R *.[1-9][0-9][0-9]R *.eledsec[1-9] *.eledsec[1-9]R *.eledsec[1-9][0-9] *.eledsec[1-9][0-9]R *.eledsec[1-9][0-9][0-9] *.eledsec[1-9][0-9][0-9]R # glossaries *.acn *.acr *.glg *.glo *.gls *.glsdefs *.lzo *.lzs # uncomment this for glossaries-extra (will ignore makeindex's style files!) # *.ist # gnuplottex *-gnuplottex-* # gregoriotex *.gaux *.gtex # htlatex *.4ct *.4tc *.idv *.lg *.trc *.xref # hyperref *.brf # knitr *-concordance.tex # TODO Comment the next line if you want to keep your tikz graphics files *.tikz *-tikzDictionary # listings *.lol # luatexja-ruby *.ltjruby # makeidx *.idx *.ilg *.ind # minitoc *.maf *.mlf *.mlt *.mtc *.mtc[0-9]* *.slf[0-9]* *.slt[0-9]* *.stc[0-9]* # minted _minted* *.pyg # morewrites *.mw # nomencl *.nlg *.nlo *.nls # pax *.pax # pdfpcnotes *.pdfpc # sagetex *.sagetex.sage *.sagetex.py *.sagetex.scmd # scrwfile *.wrt # sympy *.sout *.sympy sympy-plots-for-*.tex/ # pdfcomment *.upa *.upb # pythontex *.pytxcode pythontex-files-*/ # tcolorbox *.listing # thmtools *.loe # TikZ & PGF *.dpth *.md5 *.auxlock # todonotes *.tdo # vhistory *.hst *.ver # easy-todo *.lod # xcolor *.xcp # xmpincl *.xmpi # xindy *.xdy # xypic precompiled matrices and outlines *.xyc *.xyd # endfloat *.ttt *.fff # Latexian TSWLatexianTemp* ## Editors: # WinEdt *.bak *.sav # Texpad .texpadtmp # LyX *.lyx~ # Kile *.backup # gummi .*.swp # KBibTeX *~[0-9]* # TeXnicCenter *.tps # auto folder when using emacs and auctex ./auto/* *.el # expex forward references with \gathertags *-tags.tex # standalone packages *.sta # Makeindex log files *.lpz # REVTeX puts footnotes in the bibliography by default, unless the nofootinbib # option is specified. Footnotes are the stored in a file with suffix Notes.bib. # Uncomment the next line to have this generated file ignored. #*Notes.bib ### LaTeX Patch ### # LIPIcs / OASIcs *.vtc # glossaries *.glstex ### macOS ### # General .DS_Store .AppleDouble .LSOverride # Icon must end with two \r Icon # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk ### VisualStudioCode Patch ### # Ignore all local history of files .history .ionide # End of https://www.toptal.com/developers/gitignore/api/visualstudiocode,macos,latex # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) ================================================ FILE: .vscode/settings.json ================================================ { "latex-workshop.latex.autoBuild.run": "onSave", "latex-workshop.latex.recipe.default": "lastUsed", "latex-workshop.latex.tools": [ { "name": "xelatex", "command": "xelatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" ], "env": {} }, { "name": "bibtex", "command": "bibtex", "args": [ "%DOCFILE%" ], "env": {} }, ], "latex-workshop.latex.recipes": [ { "name": "xelatex -> bibtex -> xelatex*2", "tools": [ "xelatex", "bibtex", "xelatex", "xelatex" ] } ], "latex-workshop.latex.clean.fileTypes": [ "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof", "*.lot", "*.out", "*.toc", "*.acn", "*.acr", "*.alg", "*.glg", "*.glo", "*.gls", "*.fls", // "*.log", "*.fdb_latexmk", "*.snm", "*.synctex(busy)", "*.synctex.gz(busy)", "*.nav", "*.vrb", "*.thm", "*.xdv" ], "latex-workshop.latex.autoClean.run": "onSucceeded", "latex-workshop.latex.autoBuild.cleanAndRetry.enabled": true, "cSpell.enabled": false, "latex-workshop.intellisense.atSuggestion.user": { "@seq": "如\\autoref{eq:}所示" } } ================================================ FILE: HUSTThesis.bst ================================================ %% %% HUSTThesis.bst %% BibTeX Bibliography Style file for HUST Thesis (unsorted) %% Version 1.0 (2006/06/14) %% %% Copyright (c) 2006 Liu Huikan %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% PREDEFINED STRING MACROS %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MACRO {jan} {"January"} MACRO {feb} {"February"} MACRO {mar} {"March"} MACRO {apr} {"April"} MACRO {may} {"May"} MACRO {jun} {"June"} MACRO {jul} {"July"} MACRO {aug} {"August"} MACRO {sep} {"September"} MACRO {oct} {"October"} MACRO {nov} {"November"} MACRO {dec} {"December"} MACRO {IEEE_J_MTT} {"{IEEE} Trans. Microwave Theory Tech."} %%%%%%%%%%%%%%%%%% %% ENTRY FIELDS %% %%%%%%%%%%%%%%%%%% ENTRY { address author booktitle chapter edition editor howpublished institution journal key langid language month note number organization pages publisher school series title type volume year url } {} { label } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% INTEGER VARIABLES, STRING VARIABLES and FUNCTIONS %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% INTEGERS { output.state before.all mid.sentence after.sentence after.block } FUNCTION {not} { { #0 } { #1 } if$ } FUNCTION {and} { 'skip$ { pop$ #0 } if$ } FUNCTION {or} { { pop$ #1 } 'skip$ if$ } FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := } STRINGS { s t } FUNCTION {output.nonnull} { 's := output.state mid.sentence = { ", " * write$ } { output.state after.block = { add.period$ write$ newline$ "\newblock " write$ } { output.state before.all = 'write$ { add.period$ " " * write$ } if$ } if$ mid.sentence 'output.state := } if$ s } STRINGS {z} FUNCTION {remove.dots} { 'z := "" { z empty$ not} { z #1 #1 substring$ z #2 global.max$ substring$ 'z := duplicate$ "." = 'pop$ { * } if$ } while$ %z } FUNCTION {bibinfo.check} { swap$ duplicate$ missing$ { pop$ pop$ "" } { duplicate$ empty$ { swap$ pop$ } { swap$ pop$ } if$ } if$ } FUNCTION {format.note} { note empty$ { "" } { note #1 #1 substring$ duplicate$ "{" = 'skip$ { output.state mid.sentence = { "l" } { "u" } if$ change.case$ } if$ note #2 global.max$ substring$ * "note" bibinfo.check } if$ } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {output.check} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull if$ } FUNCTION {output.bibitem} { newline$ "\bibitem{" write$ cite$ write$ "}" write$ newline$ "" before.all 'output.state := } FUNCTION {fin.entry} { %add.period$ write$ newline$ } FUNCTION {new.block} { output.state before.all = 'skip$ { after.block 'output.state := } if$ } FUNCTION {new.sentence} { output.state after.block = 'skip$ { output.state before.all = 'skip$ { after.sentence 'output.state := } if$ } if$ } FUNCTION {new.block.checka} { empty$ 'skip$ 'new.block if$ } FUNCTION {new.block.checkb} { empty$ swap$ empty$ and 'skip$ 'new.block if$ } FUNCTION {new.sentence.checka} { empty$ 'skip$ 'new.sentence if$ } FUNCTION {new.sentence.checkb} { empty$ swap$ empty$ and 'skip$ 'new.sentence if$ } FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } { "{\em " swap$ * "}" * } if$ } INTEGERS { nameptr namesleft numnames } FUNCTION {bbl.etal} { "et~al." } FUNCTION {format.langid} { langid empty$ 'skip$ 'skip$ if$ } STRINGS {entry.langid} FUNCTION {check.entry.lang} { language empty$ not { language 'entry.langid := } 'skip$ if$ langid empty$ not { langid 'entry.langid := } 'skip$ if$ } FUNCTION {bbl.cn.etal} { "等." } FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{f.~}{ll}" format.name$ %bibinfo bibinfo.check 't := nameptr #1 > { nameptr #3 #1 + = numnames #3 > and { "others" 't := #1 'namesleft := } 'skip$ if$ namesleft #1 > { ", " * t * } { numnames #2 > { "" * } 'skip$ if$ s nameptr "{ll}" format.name$ duplicate$ "others" = { 't := } { pop$ } if$ t "others" = { "" 'entry.langid := check.entry.lang entry.langid empty$ { ", " * bbl.etal * } { entry.langid "chinese" = { ", " * bbl.cn.etal * } 'skip$ if$ } if$ } { langid empty$ { ", " * t * } { langid "chinese" = { ", " * t * } 'skip$ if$ } if$ } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {format.authors} { author empty$ { "" } { author format.names } if$ } %FUNCTION {format.editors} %{ editor empty$ % { "" } % { editor format.names % editor num.names$ #1 > % { ", editors" * } % { ", editor" * } % if$ % } % if$ %} FUNCTION {format.editors} { editor empty$ { "" } { langid empty$ { editor format.names editor num.names$ #1 > { ", editors" * } { ", editor" * } if$ } { editor format.names * ", " } if$ } if$ } FUNCTION {format.title} { title empty$ { "" } { title } if$ } FUNCTION {n.dashify} { 't := "" { t empty$ not } { t #1 #1 substring$ "-" = { t #1 #2 substring$ "-" = not { "-" * t #2 global.max$ substring$ 't := } { { t #1 #1 substring$ "-" = } { "-" * t #2 global.max$ substring$ 't := } while$ } if$ } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } if$ } while$ } FUNCTION {format.date} { year empty$ { month empty$ { "" } { "there's a month but no year in " cite$ * warning$ month } if$ } { month empty$ 'year { month ", " * year * } if$ } if$ } FUNCTION {format.btitle} { edition empty$ { title } { title empty$ { title } { "" 'entry.langid := check.entry.lang entry.langid empty$ { " " title * ", " * edition * " ed." * } { entry.langid "chinese" = { " " title * ", 第" * edition * " 版" * } 'skip$ if$ } if$ } if$ } if$ } FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ * * } FUNCTION {either.or.check} { empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } FUNCTION {format.bvolume} { volume empty$ { "" } { "volume" volume tie.or.space.connect series empty$ 'skip$ { " of " * series emphasize * } if$ "volume and number" number either.or.check } if$ } FUNCTION {format.number.series} { volume empty$ { number empty$ { series field.or.null } { output.state mid.sentence = { "number" } { "Number" } if$ number tie.or.space.connect series empty$ { "there's a number but no series in " cite$ * warning$ } { " in " * series * } if$ } if$ } { "" } if$ } FUNCTION {format.url} { url empty$ { "" } { new.block " {\url{" url * "}}" * } if$ } INTEGERS { multiresult } FUNCTION {multi.page.check} { 't := #0 'multiresult := { multiresult not t empty$ not and } { t #1 #1 substring$ duplicate$ "-" = swap$ duplicate$ "," = swap$ "+" = or or { #1 'multiresult := } { t #2 global.max$ substring$ 't := } if$ } while$ multiresult } FUNCTION {format.pages} { pages empty$ { "" } { pages multi.page.check { langid empty$ {": " pages n.dashify tie.or.space.connect } { langid "chinese" = { ": " pages n.dashify tie.or.space.connect } 'skip$ if$ } if$ } { "" pages tie.or.space.connect } if$ } if$ } FUNCTION {format.vol.num.pages} { volume field.or.null number empty$ 'skip$ { "(" number * ")" * * volume empty$ { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ": " * pages n.dashify * } if$ } if$ } FUNCTION {format.year.chapter.pages} { year field.or.null chapter empty$ 'skip$ { "(" chapter * ")" * * year empty$ { "there's a chapter but no year in " cite$ * warning$ } 'skip$ if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ": " * pages n.dashify * } if$ } if$ } FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ { "chapter" } { type "l" change.case$ } if$ chapter tie.or.space.connect pages empty$ 'skip$ { ", " * format.pages * } if$ } if$ } FUNCTION {format.in.ed.booktitle} { "" 'entry.langid := check.entry.lang booktitle empty$ { "" } { editor empty$ { entry.langid empty$ { "in: " booktitle * } { entry.langid "chinese" = {"见:" booktitle * } 'skip$ if$ } if$ } { entry.langid empty$ { "in: " format.editors * ", " * booktitle * } { entry.langid "chinese" = {"见:" * format.editors * booktitle *} 'skip$ if$ } if$ } if$ } if$ } FUNCTION {empty.misc.check} { author empty$ title empty$ howpublished empty$ month empty$ year empty$ note empty$ and and and and and { "all relevant fields are empty in " cite$ * warning$ } 'skip$ if$ } FUNCTION {format.thesis.type} { type empty$ 'skip$ { pop$ type "t" change.case$ } if$ } FUNCTION {format.tr.number} { type empty$ { "Technical Report" } 'type if$ number empty$ { "t" change.case$ } { number tie.or.space.connect } if$ } FUNCTION {format.article.crossref} { key empty$ { journal empty$ { "need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } { "In {\em " journal * "\/}" * } if$ } { "In " key * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.crossref.editor} { editor #1 "{ll }{f{~}}" format.name$ editor num.names$ duplicate$ #2 > { pop$ " et~al." * } { #2 < 'skip$ { editor #2 "{ll }{f{~}}" format.name$ "others" = { " et~al." * } { " and " * editor #2 "{ll }{f{~}}" format.name$ * } if$ } if$ } if$ } FUNCTION {format.book.crossref} { volume empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ "In " } { "Volume" volume tie.or.space.connect " of " * } if$ editor empty$ editor field.or.null author field.or.null = or { key empty$ { series empty$ { "need editor, key, or series for " cite$ * " to crossref " * crossref * warning$ "" * } { "{\em " * series * "\/}" * } if$ } { key * } if$ } { format.crossref.editor * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { editor empty$ editor field.or.null author field.or.null = or { key empty$ { booktitle empty$ { "need editor, key, or booktitle for " cite$ * " to crossref " * crossref * warning$ "" } { "In {\em " booktitle * "\/}" * } if$ } { "In " key * } if$ } { "In " format.crossref.editor * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.address.publisher} { address empty$ { publisher empty$ { "" } { "there's a publisher but no address in " cite$ * warning$ publisher } if$ } { publisher empty$ 'address { address ": " * publisher * } if$ } if$ } FUNCTION {format.address.school} { address empty$ { school empty$ { "" } { "there's a school but no address in " cite$ * warning$ school } if$ } { school empty$ 'address { address ": " * school * } if$ } if$ } FUNCTION {format.year.pages} { year field.or.null pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ": " * pages n.dashify * } if$ } if$ } FUNCTION {format.title.type} { title empty$ { type empty$ { "" } { "there's a type but no title in " cite$ * warning$ type } if$ } { type empty$ 'title { title ": " * type * } if$ } if$ } FUNCTION {book} { output.bibitem author empty$ { format.editors "author and editor" output.check } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ new.block format.btitle "title" output.check crossref missing$ { %format.bvolume output new.block %format.number.series output %new.sentence } { new.block format.book.crossref output.nonnull } if$ %format.edition output format.address.publisher output format.date "year" output.check new.block note output fin.entry } FUNCTION {article} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block crossref missing$ { %journal emphasize "journal" output.check journal "journal" output.check %format.date "year" output.check %new.block year output format.vol.num.pages output } { format.article.crossref output.nonnull format.pages output } if$ new.block fin.entry } FUNCTION {incollection} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check address output publisher "publisher" output.check %format.date output.check %year output format.year.chapter.pages output } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ new.block fin.entry } FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check new.block %format.bvolume output %format.number.series output %format.pages output address empty$ { organization publisher new.sentence.checkb organization output publisher output %new.block format.year.chapter.pages output %year output } { %address output.nonnull format.address.publisher output format.year.pages output %year output %new.sentence %organization output } if$ %new.block %pages output %remove.dots } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {techreport} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block % format.tr.number output.nonnull institution "institution" output.check address output format.year.pages output format.url output new.block note output fin.entry } FUNCTION {booklet} { output.bibitem format.authors output new.block format.title "title" output.check howpublished address new.block.checkb howpublished output address output format.date output new.block note output fin.entry } FUNCTION {inbook} { output.bibitem author empty$ { format.editors "author and editor" output.check } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ new.block format.btitle "title" output.check crossref missing$ { format.bvolume output new.block format.number.series output new.sentence } { new.block format.book.crossref output.nonnull } if$ %format.edition output format.address.publisher output format.date "year" output.check format.chapter.pages "chapter and pages" output.check new.block note output fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem author empty$ { organization empty$ 'skip$ { organization output.nonnull address output } if$ } { format.authors output.nonnull } if$ new.block format.btitle "title" output.check author empty$ { organization empty$ { address new.block.checka address output } 'skip$ if$ } { organization address new.block.checkb organization output address output } if$ %format.edition output format.date output new.block note output fin.entry } % FUNCTION {masterthesis.type} % { langid empty$ % { "[硕士学位论文]" } % { "[Master Thesis]" } % if$ % } FUNCTION {masterthesis.type} { "" 'entry.langid := check.entry.lang entry.langid empty$ { "[Master Thesis]" } { entry.langid "chinese" = { "[硕士学位论文]" } 'skip$ if$} if$ } FUNCTION {mastersthesis} { output.bibitem format.authors "author" add.period$ output.check new.block format.title remove.dots ": " * masterthesis.type * output new.block format.address.school output %format.madd "address" output.check %school "school" output.check format.date "year" output.check new.block note output fin.entry } FUNCTION {misc} { output.bibitem format.authors output title howpublished new.block.checkb format.title output howpublished new.block.checka howpublished output format.date output format.url output new.block note output fin.entry empty.misc.check } FUNCTION {phdthesis.type} { "" 'entry.langid := check.entry.lang entry.langid empty$ { "[PhD Dissertation]" } { entry.langid "chinese" = { "[博士学位论文]" } 'skip$ if$} if$ } FUNCTION {phdthesis} { output.bibitem format.authors "author" add.period$ output.check new.block format.title remove.dots ": " * phdthesis.type * output new.block format.address.school output %address output %school "school" output.check format.date "year" output.check new.block note output fin.entry } FUNCTION {proceedings} { output.bibitem editor empty$ { organization output } { format.editors output.nonnull } if$ new.block format.btitle "title" output.check format.bvolume output format.number.series output address empty$ { editor empty$ { publisher new.sentence.checka } { organization publisher new.sentence.checkb organization output } if$ publisher output format.date "year" output.check } { address output.nonnull format.date "year" output.check new.sentence editor empty$ 'skip$ { organization output } if$ publisher output } if$ new.block note output fin.entry } FUNCTION {patent} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check format.date "year" output.check format.pages output new.block note output fin.entry } FUNCTION {unpublished} { output.bibitem format.authors "author" output.check new.block format.title "title" output.check new.block note "note" output.check format.date output fin.entry } FUNCTION {default.type} { misc } %%%%%%%%%%%%%%%%%% %% MAIN PROGRAM %% %%%%%%%%%%%%%%%%%% READ STRINGS { longest.label } INTEGERS { number.label longest.label.width } FUNCTION {initialize.longest.label} { "" 'longest.label := #1 'number.label := #0 'longest.label.width := } FUNCTION {longest.label.pass} { number.label int.to.str$ 'label := number.label #1 + 'number.label := label width$ longest.label.width > { label 'longest.label := label width$ 'longest.label.width := } 'skip$ if$ } EXECUTE {initialize.longest.label} ITERATE {longest.label.pass} FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ } EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} ================================================ FILE: HUSTthesis.cls ================================================ %% %% HUSTThesis.cls 2022/03/28 version V3.2 %% %% This is the unofficial LaTeX class for Master Thesis Template of %% Huazhong University of Science and Technology %% %% %% Contributors: %% Feng Jiang (2005 V1.0), Huikan Liu (2006 V2.0), Xinze Zhang (2020 V3.0), %% Lianghao Li & Jianqing Lin & lxysl & Xinze Zhang (2021 V3.1) %% %% Copyright (C) 2006-2007 by Huikan Liu %% Copyright (C) 2020-2021 by Xinze Zhang %% Copyright (C) 2021-2022 by Lianghao Li % & JianQing Lin %% This code is distributed under the Perl Artistic License %% ( http://language.perl.com/misc/Artistic.html ) %% and may be freely used, distributed and modified. %% Retain the contribution notices and credits. %% %% Current maintainer: lianghao93@vip.qq.com %% linjqcn@gmail.com %% xinze@hust.edu.cn %% %% QQ Group:782574845 %%********************************************************************** % % Available class options % (e.g., \documentclass[draftformat,dvips]{HUSTThesis} % % *** choose only one from each category *** % % draftformat, finalformat % % 提交草稿打开 draftformat 选项,提交最终版打开 finalformat 选项。 % 草稿正文页包括页眉(“华中科技大学博士学位论文”),页眉修饰线(双线)。 % 页脚(页码),页脚修饰线(单线)。 % 最终版正文页不包括页眉、页眉修饰线和页脚修饰线,仅包含页脚。 % % % arial % 打开选项启用 arial 字体,若无字体宏包,则默认采用 helvet 字体。 % %******* % 04/2025 % % 03/2022 V3.1 changes: % modify class file (HUSTthesis.cls): % 1. Update the defence committee page between Chinese and English cover % 2. Update the indentation and spacing of the itemize, enumerate and description % 3. Update the reference list according to the latest standard % 4. Update the appendixs according to the latest standard % 5. Change the line spacing to match the Word template % 6. Added bold fonts to some fonts (Heiti & Kaiti) % 7. Changed the font, font size, line spacing and indentation of the table of contents page to match the Word template % 8. Updated header and footer % % by Li Lianghao (lianghao93@vip.qq.com) % & Lin Jianqing (linjqcn@gmail.com) % % 11/2020 V3.0 changes: % 1. Modify class file (HUSTthesis.cls): % 1.1 Update the location of xuehao of covering page % 1.2 Update the table length of the emajor % 1.3 Udpate the font specification with adding and using the font locally, making it be able to compile this project on overleaf % 1.4 Remove the font command of lishu and youyuan % 2. Change the folder name of ./data/* to ./body/* and update the information of xinze zhang % % by Zhang Xinze (xinze@hust.edu.cn) % % % 06/2006 V2.0 changes: % % 1. wrote class file (HUSTthesis.cls) based on ThuThesis.cls written by % Xue Ruini, the class file is designed for Doctoral Thesis of HUST. % % 2. define new Itemize, Enumerate and Description environments with compact spacing % % by Liu Huikan (hkliu@mail.edu.cn) % %******* % 04/2004 V1.0 released (Feng Jiang) % % % by Feng Jiang (fjiang@people.com.cn) % %******* % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % %% \paragraph{引用方式} %% \paragraph{致谢声明} \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesClass{HUSTthesis} [2022/03/26 3.2 Huazhong University of Science and Technology Thesis Template] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定义选项 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 启用 dvips \newif\ifHUST@dvips \DeclareOption{dvips}{\HUST@dvipstrue} \DeclareOption{dvipdfm}{\HUST@dvipsfalse} % 启用真正的 arial 字体 \newif\ifHUST@arial \DeclareOption{arial}{\HUST@arialtrue} % 公式是否使用 Times Roman 字体 \newif\ifHUST@blackhead \DeclareOption{blackhead}{\HUST@blackheadtrue} \DeclareOption{redhead}{\HUST@blackheadfalse} % draftformat 包含全部的页眉页脚,最终版本的页眉为空,页脚仅有页码 \newif\ifHUST@finalformat \DeclareOption{draftformat}{\HUST@finalformatfalse} \DeclareOption{finalformat}{\HUST@finalformattrue} \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{book}} \ProcessOptions \LoadClass[12pt, a4paper, openany]{book} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 加载宏包 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{ifthen} \RequirePackage{calc} \RequirePackage{ifpdf,pifont} \RequirePackage{ifxetex} \ifHUST@arial \IfFileExists{arial.sty}{\RequirePackage{arial}}% {\RequirePackage[scaled=.92]{helvet}} \else \RequirePackage[scaled=0.92]{helvet} \fi % 默认使用 Times Roman 字体 % 加载 AMSLaTeX 宏包,增加对数学环境的支持 \RequirePackage{amsmath,amssymb,bm} % \ifHUST@mathtimes % \RequirePackage{mathptmx} % \RequirePackage{courier} % \RequirePackage{bm} % \else % \renewcommand{\sfdefault}{phv} % \renewcommand{\rmdefault}{ptm} % \renewcommand{\ttdefault}{pcr} % \def\fontsubfuzz{2.0pt} % \fi % 加载图形宏包 \RequirePackage{graphicx} % 首行缩进宏包 \RequirePackage{indentfirst} \setlength{\parindent}{2em} % 中文支持和中文数字支持 % \RequirePackage{xeCJK,CJKnumb} \RequirePackage[SlantFont]{xeCJK} % 中文标点符号支持 %\RequirePackage{CJKpunct} % 让导言区支持中文 %\begin{CJK*}{GBK}{song}\end{CJK*} % \setCJKmainfont[AutoFakeBold = {2.25},ItalicFont={KaiTi}]{SimSun} % \setCJKsansfont{SimHei} % \setCJKmonofont{FangSong} % \setCJKfamilyfont{song}[AutoFakeBold = {2.25}]{SimSun} % \setCJKfamilyfont{hei}{SimHei} % \setCJKfamilyfont{kai}{KaiTi} % \setCJKfamilyfont{fs}{FangSong} %改动1 \setCJKmainfont[Path=supply/font/,AutoFakeBold = {2.25},ItalicFont={simkai.ttf}]{SimSun.ttf} \setCJKsansfont[Path=supply/font/,AutoFakeBold = {2.25},ItalicFont={simkai.ttf}]{SimHei.ttf} \setCJKmonofont[Path=supply/font/,AutoFakeBold = {2.25},ItalicFont={simkai.ttf}]{simfang.ttf} \setCJKmonofont[Path=supply/font/,AutoFakeBold = {2.25},ItalicFont={simkai.ttf}]{STZhongsong.ttf} \setCJKfamilyfont{zhongsong}[Path=supply/font/,AutoFakeBold = {2.25}]{STZhongsong.ttf} \setCJKfamilyfont{song}[Path=supply/font/,AutoFakeBold = {2.25}]{SimSun.ttf} \setCJKfamilyfont{hei}[Path=supply/font/,AutoFakeBold = {2.25}]{SimHei.ttf} \setCJKfamilyfont{kai}[Path=supply/font/,AutoFakeBold = {2.25}]{simkai.ttf} \setCJKfamilyfont{fs}[Path=supply/font/,AutoFakeBold = {2.25}]{simfang.ttf} \setmainfont{Times New Roman} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 重定义字体命令 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\song}{\CJKfamily{song}} % 宋体 \let\songti\song \newcommand{\fs}{\CJKfamily{fs}} % 仿宋体 \let\fangsong\fs \newcommand{\kai}{\CJKfamily{kai}} % 楷体 \let\kaishu\kai \newcommand{\hei}{\CJKfamily{hei}} % 黑体 \let\heiti\hei \newcommand{\zhongsong}{\CJKfamily{zhongsong}} % 华文中宋 \let\STzhongsong\zhongsong % \newcommand{\you}{\CJKfamily{you}} % 幼圆 % \let\youyuan\you %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 重定义字号命令,采用薛瑞尼版本中关于字号命令的定义, % 消除了字体大小和行距的紧耦合 % 命令中的可选参数用于指定行距,默认为单倍行距。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newlength\thu@linespace \newcommand{\thu@choosefont}[2]{% \setlength{\thu@linespace}{#2*\real{#1}}% \fontsize{#2}{\thu@linespace}\selectfont} \def\thu@define@fontsize#1#2{% \expandafter\newcommand\csname #1\endcsname[1][\baselinestretch]{% \thu@choosefont{##1}{#2}}} \thu@define@fontsize{dachu}{45pt} %used for the cover 博士学位论文 \thu@define@fontsize{chuhao}{42pt} \thu@define@fontsize{xiaochu}{36pt} \thu@define@fontsize{yihao}{26pt} \thu@define@fontsize{xiaoyi}{24pt} \thu@define@fontsize{erhao}{22pt} \thu@define@fontsize{xiaoer}{18pt} \thu@define@fontsize{sanhao}{16pt} \thu@define@fontsize{xiaosan}{15pt} \thu@define@fontsize{sihao}{14pt} \thu@define@fontsize{banxiaosi}{13pt} \thu@define@fontsize{xiaosi}{12pt} \thu@define@fontsize{dawu}{11pt} \thu@define@fontsize{wuhao}{10.5pt} \thu@define@fontsize{xiaowu}{9pt} \thu@define@fontsize{liuhao}{7.5pt} \thu@define@fontsize{xiaoliu}{6.5pt} \thu@define@fontsize{qihao}{5.5pt} \thu@define@fontsize{bahao}{5pt} %% 正文小四号(12pt)字,行距为固定值18 pt,22/12=1.67倍行距 行间距不小于三分之二字高度 %\renewcommand\normalsize{\fontsize{12pt}{18pt}\selectfont} % \renewcommand\normalsize{\fontsize{12pt}{20pt}\selectfont} \renewcommand\normalsize{\fontsize{12pt}{23.1pt}\selectfont} \renewcommand\small{\fontsize{10.5pt}{17.5pt}\selectfont} %% 设置页面颜色值 \RequirePackage{xcolor} \definecolor{headr}{RGB}{212,14,14} \definecolor{headb}{RGB}{0,0,0} % 加载此宏包以支持并排图形,打开 config 选项以兼容过时宏包 % subfigure \RequirePackage{caption} \RequirePackage{subcaption} \captionsetup[sub]{font = small} % 加强定理环境的宏包 \RequirePackage[amsmath,thmmarks,hyperref]{ntheorem} % 表格宏包 \RequirePackage{array} % 支持三线表表的宏包,方便水平表格线的粗细控制 \RequirePackage{booktabs} % 控制目录风格的宏包 \RequirePackage{titletoc} % 支持引用缩写的宏包 \RequirePackage[numbers,super,sort&compress]{natbib} % 生成有书签的 pdf 及其开关,结合 gbk2uni 避免生成乱码 \ifpdf \RequirePackage[pdftex,pdfpagelabels]{hyperref} \else \ifxetex \RequirePackage[xetex]{hyperref} \DeclareGraphicsExtensions{.pdf,.eps,.png,.jpg,} \else \ifHUST@dvips \RequirePackage[dvips,pdfpagelabels]{hyperref} \else \RequirePackage[dvipdfmx,CJKbookmarks,pdfpagelabels]{hyperref} \fi \fi \fi % 加载 hypernat 宏包使 hyperref 和 natbib 可以配合正常工作 \hypersetup{% CJKbookmarks=true, bookmarksnumbered=true, bookmarksopen=true, breaklinks=true, colorlinks=true, % avoid boxes citecolor=blue, linkcolor=black, anchorcolor=black, filecolor=black, menucolor=black, urlcolor=black, plainpages=false, pdfstartview=FitH} \RequirePackage{hypernat} \def\figureautorefname{图}% \def\tableautorefname{表}% \def\equationautorefname{公式} \def\sectionautorefname{节} \def\subsectionautorefname{节} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定义版面尺寸,这一部分根据情况可能需要作部分调整。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \setlength{\textwidth}{\paperwidth} \setlength{\textheight}{\paperheight} \setlength\marginparwidth{0cm} \setlength\marginparsep{0cm} \addtolength{\textwidth}{-5.6cm} \setlength{\oddsidemargin}{2.8cm-1in} \setlength{\evensidemargin}{\oddsidemargin} \setlength{\headheight}{0.9cm} \setlength{\topskip}{0pt} \setlength{\skip\footins}{15pt} % \setlength{\footskip}{1.3cm} \setlength{\footskip}{1.6cm} \setlength{\topmargin}{3.0cm-1in} \setlength{\headsep}{0.5cm} % \addtolength{\textheight}{-7.0cm} \addtolength{\textheight}{-7.3cm} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定制公式样式 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 允许长公式断行、分页 \allowdisplaybreaks[4] % 设置公式与上下文的间距 % \abovedisplayskip=10bp plus 2bp minus 2bp % \abovedisplayshortskip=10bp plus 2bp minus 2bp % \belowdisplayskip=\abovedisplayskip % \belowdisplayshortskip=\abovedisplayshortskip \abovedisplayskip=10pt plus 3pt minus 9pt \abovedisplayshortskip=0pt plus 3pt \belowdisplayskip=\abovedisplayskip \belowdisplayshortskip=7pt plus 3pt minus 4pt % 设置公式的编号形式,形式为 (式1.1),\tagform@ 参考 amsmath 中的命令 \renewcommand{\theequation}{\arabic{chapter}.\arabic{equation}} \let\reftagform@\tagform@ \def\tagform@#1{\maketag@@@{(\hspace{0.1em}\ignorespaces#1\unskip\@@italiccorr)}} \renewcommand{\eqref}[1]{\textup{\reftagform@{\ref{#1}}}} % 设置子公式的编号形式,形式为(式1.1a)/(式1.1b) \@ifundefined{ignorespacesafterend}{% \def\ignorespacesafterend{\global\@ignoretrue}% }{} \renewenvironment{subequations}{% \refstepcounter{equation}% \protected@edef\theparentequation{\theequation}% \setcounter{parentequation}{\value{equation}}% \setcounter{equation}{0}% \def\theequation{\theparentequation\alph{equation}}% \ignorespaces }{% \setcounter{equation}{\value{parentequation}}% \ignorespacesafterend } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 设定浮动对象 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 对于 h 参数,浮动对象与前后正文间的距离 \setlength{\intextsep}{0.7\baselineskip plus 0.1\baselineskip minus 0.1\baselineskip} % 顶部或底部的浮动对象与正文间的距离 \setlength{\textfloatsep}{0.8\baselineskip plus 0.1\baselineskip minus 0.2\baselineskip} % 设定浮动对象的比例 % 下面这组命令使浮动对象的缺省值稍微宽松一点,从而防止幅度 % 对象占据过多的文本页面,也可以防止在很大空白的浮动页上放置 % 很小的图形。 \renewcommand{\textfraction}{0.15} \renewcommand{\topfraction}{0.85} \renewcommand{\bottomfraction}{0.65} \renewcommand{\floatpagefraction}{0.60} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定制浮动图形和表格的样式 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 表格中的字体比正文小半号,为大五号,11pt,同时表格中的行距为 1.4 倍行距 % 重定义 tabular 环境 \let\HUST@tabular\tabular \renewcommand\tabular{\dawu[1.4]\HUST@tabular} \let\endHUST@tabular\endtabular % 重定义 tabular* 环境 \@namedef{tabular*}#1{\dawu[1.4]% \setlength\dimen@{#1}% \edef\@halignto{to\the\dimen@}\@tabular} % 设置标题样式 \long\def\@makecaption#1#2{% % 图表标题字体比正文小半号,为大五号,11pt % \setstretch{.9} %在图表标题长度超过一行时,调整行间距使之与正文行间距一致 \dawu \rmfamily \song \vskip\abovecaptionskip % 去掉图表号后面的":" \setbox\@tempboxa\hbox{#1~~#2}% \ifdim \wd\@tempboxa >\hsize % 如果图表标题的长度超过一行,则采用悬挂缩进的方式 \@hangfrom{#1~~}#2 \else % 如果图表标题的长度不超过一行,则采用居中方式 \global \@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \vskip\belowcaptionskip} % 设置标题标签的样式 \def\thefigure{\@arabic\c@figure} \def\fnum@figure{\figurename~\thefigure} \def\thetable{\@arabic\c@table} \def\fnum@table{\tablename~\thetable} % 设置标题前后间距 \setlength\abovecaptionskip{12bp} \setlength\belowcaptionskip{12bp} % 下面两条命令可以使标题编号随着每开始新的一章而重新开始,即按章的顺序编号 \renewcommand{\thetable}{\arabic{chapter}.\arabic{table}} \renewcommand{\thefigure}{\arabic{chapter}.\arabic{figure}} % \renewcommand{\thesubfigure}{\thefigure--(\arabic{subfigure})} % % 定制引用子图的标记形式 % \renewcommand{\p@subfigure}{:} % 定义新命令\hlinewd 来改变水平线的粗细 \def\hlinewd#1{% \noalign{\ifnum0=`}\fi\hrule \@height #1 \futurelet \reserved@a\@xhline} % 表格行间距增大10% \renewcommand{\arraystretch}{1.1} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 重定义 itemize, enumerate 和 description 环境, % 使列表项的间距更紧凑。 % 这个定义和 paralist 宏包不兼容,所以不能加载 paralist 宏包 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % save original itemize, enumerate and description \let\LaTeXitemize\itemize \let\endLaTeXitemize\enditemize \let\LaTeXenumerate\enumerate \let\endLaTeXenumerate\endenumerate \let\LaTeXdescription\description \let\endLaTeXdescription\enddescription % Space between first item and preceding paragraph \newskip\HUSTtopsep \HUSTtopsep 0pt % the space between the end of the label box % and the text of the first item. % Its default value is 0.5em. \newdimen\HUSTnormlabelsep \HUSTnormlabelsep 0.3em % new dimension the list labels are indented to the right. % Normally, this is the same as the paragraph indention \newdimen\labelindent \labelindent \parindent % the default amount of \labelindent. % Normally, this is the same as the paragraph indention \newdimen\HUSTlabelindent \HUSTlabelindent \parindent % This command provides an easy way to set \leftmargin based % on the \labelwidth, \labelsep and the argument \labelindent % Usage: \calcleftmargin{width-to-indent-the-label} % output is in the \leftmargin variable, i.e., effectively: % \leftmargin = argument + \labelwidth + \labelsep \def\calcleftmargin#1{\setlength{\leftmargin}{#1}% \addtolength{\leftmargin}{\labelwidth}% \addtolength{\leftmargin}{\labelsep}} % The actual amount labels will be indented is % \labelindent multiplied by the factors below % corresponding to the level of nesting depth % This provides a means by which the user can % alter the effective \labelindent for deeper % levels % The first list level almost always has full indention. % The second levels I've seen have only 75% of the normal indentation % Three level or greater nestings are very rare. I am guessing % that they don't use any indentation. % excerpted from IEEEtrantools.sty \def\HUSTlabelindentfactori{0.8} % \def\HUSTlabelindentfactorii{-0.3} % 0.0 or 1.0 may be used in some cases \def\HUSTlabelindentfactoriii{-0.3} % 0.75? 0.5? 0.0? \def\HUSTlabelindentfactoriv{-0.3} \def\HUSTlabelindentfactorv{-0.3} \def\HUSTlabelindentfactorvi{-0.3} % factor value actually used within lists, it is auto % set to one of the 6 values above % global changes here have no effect \def\labelindentfactor{1.0} % provide original LaTeX itemize, enumerate and description % environment from article.cls \def\itemize{\@ifnextchar[{\@HUSTitemize}{\@HUSTitemize[\relax]}} \def\enumerate{\@ifnextchar[{\@HUSTenumerate}{\@HUSTenumerate[\relax]}} \def\description{\@ifnextchar[{\@HUSTdescription}{\@HUSTdescription[\relax]}} \def\enditemize{\endlist} \def\endenumerate{\endlist} \def\enddescription{\endlist} \def\@HUSTitemize[#1]{% \ifnum\@itemdepth>3\relax\@toodeep\else% \ifnum\@listdepth>5\relax\@toodeep\else% \advance\@itemdepth\@ne% \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \advance\@listdepth\@ne% \edef\labelindentfactor{\csname HUSTlabelindentfactor\romannumeral\the\@listdepth\endcsname}% \advance\@listdepth-\@ne% \list{\csname\@itemitem\endcsname}{% \topsep\HUSTtopsep% \labelindent\HUSTlabelindent% \labelsep\HUSTnormlabelsep% \partopsep\z@% \parsep\z@% \itemsep\z@% \rightmargin\z@% \listparindent\z@% \itemindent\z@% \settowidth{\labelwidth}{\csname labelitem\romannumeral\the\@itemdepth\endcsname}% \def\makelabel##1{\makebox[\labelwidth][r]{\normalfont ##1}}% #1\relax% \labelindent=\labelindentfactor\labelindent% \calcleftmargin{\labelindent}% } \fi\fi} % commands generating enumerate labels \def\labelenumi{\theenumi)}\def\theenumi{\arabic{enumi}} \def\labelenumii{(\theenumii)}\def\theenumii{\arabic{enumii}} \def\labelenumiii{\theenumiii.}\def\theenumiii{\alph{enumiii}} \def\labelenumiv{(\theenumiv)}\def\theenumiv{\alph{enumiv}} \def\@HUSTenumerate[#1]{% \ifnum\@enumdepth>3\relax\@toodeep\else% \ifnum\@listdepth>5\relax\@toodeep\else% \advance\@enumdepth\@ne% \edef\@enumctr{enum\romannumeral\the\@enumdepth}% \advance\@listdepth\@ne% \edef\labelindentfactor{\csname HUSTlabelindentfactor\romannumeral\the\@listdepth\endcsname}% \advance\@listdepth-\@ne% \list{\csname label\@enumctr\endcsname}{ \usecounter{\@enumctr}% \topsep\HUSTtopsep% \labelindent\HUSTlabelindent% \labelsep\HUSTnormlabelsep% \partopsep\z@% \parsep\z@% \itemsep\z@% \rightmargin\z@% \listparindent\z@% \itemindent\z@% \settowidth{\labelwidth}{(9)}% \def\makelabel##1{\makebox[\labelwidth][r]{\normalfont ##1}}% #1\relax% \labelindent=\labelindentfactor\labelindent% \calcleftmargin{\labelindent}% }\fi\fi}% \def\@HUSTdescription[#1]{% \ifnum\@listdepth>5\relax\@toodeep\else% \advance\@listdepth\@ne% \edef\labelindentfactor{\csname HUSTlabelindentfactor\romannumeral\the\@listdepth\endcsname}% \advance\@listdepth-\@ne% \list{}{ \topsep\HUSTtopsep% \labelindent\HUSTlabelindent% \labelsep\HUSTnormlabelsep% \partopsep\z@% \parsep\z@% \itemsep\z@% \rightmargin\z@% \listparindent\z@% \itemindent\z@% \settowidth{\labelwidth}{Hellohello}% \def\makelabel##1{\makebox[\labelwidth][r]{\normalfont ##1}}% #1\relax% \labelindent=\labelindentfactor\labelindent% \calcleftmargin{\labelindent}}\fi} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 用于中文段落缩进和正文版式 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newlength\CJKtwospaces \def\CJKindent{\parindent2em} % 段落之间的竖直距离 \setlength{\parskip}{0pt plus2pt minus1pt} % 定理环境 \gdef\@endtrivlist#1{% % from \endtrivlist \if@inlabel \indent\fi \if@newlist \@noitemerr\fi \ifhmode \ifdim\lastskip >\z@ #1\unskip \par %<<<<<<<<<<<<<<<<<<<<<< \else #1\unskip \par \fi \fi \if@noparlist \else \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip \vskip\@tempskipa \fi \@endparenv \fi #1} \theoremstyle{plain} \theorembodyfont{\song\rmfamily} \theoremheaderfont{\hei\rmfamily} %\theoremsymbol{\ensuremath{\blacksquare}} \theoremsymbol{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定义正文中段落章节标题的格式 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 正文涉及 4 层,即: x.x.x.x % chapter(0), section(1), subsection(2), subsubsection(3) \setcounter{secnumdepth}{3} % 章序号与章名之间空一个汉字符,黑体三号字,居中书写,单倍行距, % 段前空20磅,段后空20磅。 \renewcommand \thechapter {\@arabic\c@chapter} \def\@makechapterhead#1{% \vspace*{20bp}% \begingroup \hei \bfseries \sanhao[1]\centering \ifnum \c@secnumdepth >\m@ne \thechapter\hskip1em \fi \interlinepenalty\@M #1\par\endgroup \nobreak \vskip 20bp } \def\@makeschapterhead#1{% \vspace*{20bp}% \begingroup \hei \bfseries \sanhao[1]\centering \interlinepenalty\@M #1\par\endgroup \nobreak \vskip 20bp } % 一级节标题,例如:“2.1 理论分析”。 % 节标题序号与标题名之间空一个汉字符。 % 采用黑体四号(14pt)字居左书写,1.5倍行距(21pt), % 段前空14磅,段后空7磅。 \def\@seccntformat#1{\csname the#1\endcsname\hskip 1em\relax} \renewcommand\section{\@startsection {section}{1}{\z@}% {14bp}% {7bp}% {\hei \bfseries \sihao[1.5]}} % 二级节标题,例如:“2.1.1 理论分析”。 % 节标题序号与标题名之间空一个汉字符。 % 采用黑体半小四号(13.5pt)字居左书写,1.5倍行距(19.5pt), % 段前空16磅,段后空6磅。 \renewcommand\subsection{\@startsection {subsection}{2}{\z@}% {14bp}% {7bp}% {\hei \bfseries \banxiaosi[1.5]}} % 三级节标题,例如:“2.1.1.1 理论分析”。 % 节标题序号与标题名之间空一个汉字符。 % 采用黑体小四号(12pt)字居左书写,1.5倍行距(18pt), % 段前空16磅,段后空6磅。 \renewcommand\subsubsection{\@startsection {subsubsection}{3}{\z@}% {14bp}% {7bp}% {\hei \bfseries \xiaosi[1.5]}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 应用 titletoc 宏包定义标题的目录项格式 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %改动3 % 目录涉及 2 层,即: x.x % chapter(0), section(1), subsection(2), subsubsection(3) \setcounter{tocdepth}{1} %适当增加目录项的右边距 \contentsmargin{2.0em} % 分别正文一级标题的两种目录项格式 \newcommand{\enabledottedtoc}{%显示标题、指引线和页码 \titlecontents{chapter} [0.0em] {\vspace{0.3em}\bfseries\hei\sihao\addvspace{6bp minus6bp}} {\thecontentslabel\hspace{1em}} {} {\normalfont\dotfill\textrm{\contentspage[(\thecontentspage)]}} } \newcommand{\disabledottedtoc}{%仅显示标题,不显示指引线和页码 \titlecontents{chapter} [2.1em] {\vspace{0.3em}\bfseries\hei\sihao\addvspace{6bp minus6bp}} {\contentslabel{1.76em}} {} {} } % 定义其它各级子标题的目录项格式 \titlecontents{section} [3.24em] {\vspace{0.3em}\sihao\addvspace{6bp minus6bp}} {\contentslabel{2.76em}} {} {\dotfill\textrm{\contentspage[(\thecontentspage)]} } \titlecontents{subsection} [3.0em] {} {\contentslabel{3.0em}} {} {\dotfill\textrm{\contentspage[(\thecontentspage)]}} \titlecontents{subsubsection} [0.0em] {} {\thecontentslabel\hspace{1.0em}} {} {\dotfill\textrm{\contentspage[(\thecontentspage)]}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定义页眉页脚,参考 fancyhdr 宏包的代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %改动4 \newcommand{\headrulewidth}{1pt} \newcommand{\footrulewidth}{0.5pt} \def\ps@plain{% \ifHUST@finalformat \def\@oddhead{} \else \def\@oddhead{% \vbox{% \parbox[b]{\textwidth}{\centering\sihao% \ziju{0.81em} \kai \bfseries \sanhao[1] \ifHUST@blackhead \textcolor{headb} {\HUST@schoolename\HUST@apply} \else \textcolor{headr} {\HUST@schoolename\HUST@apply} \fi } \vskip6pt \hspace{-4mm} \vbox{\hspace{-3mm} \ifHUST@blackhead \textcolor{headb}{\hrule width 1.04\textwidth height\headrulewidth depth0pt\vskip1pt \hrule width 1.04\textwidth height\headrulewidth} \else \textcolor{headr}{\hrule width 1.04\textwidth height\headrulewidth depth0pt\vskip1pt \hrule width 1.04\textwidth height\headrulewidth} \fi }}}\fi% \let\@evenhead=\@oddhead \ifHUST@finalformat \def\@oddfoot{% \hbox to\textwidth{% \vbox{% \hfill \parbox[t]{\textwidth}{\centering\wuhao\thepage\strut}\hfill }}} \else \def\footrule{{\vskip-0.3\normalbaselineskip\vskip-\footrulewidth \hrule\@width 1.04\textwidth\@height\footrulewidth\vskip0.45\normalbaselineskip}} \def\@oddfoot{% \hbox to \textwidth{% \hspace{-4mm}\vbox{% \ifHUST@blackhead \textcolor{headb} \footrule \hfill \hspace{-4mm} \parbox[t]{\textwidth}{\hspace{10mm}\centering\wuhao\thepage\strut} \vspace{3mm}\hfill \else \textcolor{headr} \footrule \hfill \hspace{-4mm} \parbox[t]{\textwidth}{\hspace{10mm}\centering\wuhao\thepage\strut} \vspace{3mm}\hfill \fi }}} \fi \let\@evenfoot=\@oddfoot} \pagestyle{plain} \renewcommand{\chaptermark}[1]{\markboth{\@chapapp \ ~~#1}{}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定义脚注 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定义按页编号的脚注,用了 perpage 的代码 % 定义脚注修饰线 \def\footnoterule{\vskip-3\p@\hrule\@width0.3\textwidth\@height0.4\p@\vskip2.6\p@} % 定义脚注大小 \let\HUST@footnotesize\footnotesize \renewcommand\footnotesize{\HUST@footnotesize\xiaowu[1.3]} % 单倍行距太丑了,还是用1.3吧 % 重新定义生成脚注的命令 \let\HUST@fnsymbol\@fnsymbol \renewcommand{\thefootnote}{\HUST@fnsymbol\c@footnote} \renewcommand{\thempfootnote}{\HUST@fnsymbol\c@mpfootnote} \def\@makefnmark{\textsuperscript{\hbox{\normalfont\@thefnmark}}} \long\def\@makefntext#1{ \bgroup \setbox\@tempboxa\hbox{% \hb@xt@ 2em{\@thefnmark\hss}} \leftmargin\wd\@tempboxa \rightmargin\z@ \linewidth \columnwidth \advance \linewidth -\leftmargin \parshape \@ne \leftmargin \linewidth \footnotesize \@setpar{{\@@par}}% \leavevmode \llap{\box\@tempboxa}% #1 \par\egroup} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定义封面和封底 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\xuehao#1{\def\HUST@xuehao{#1}}\def\HUST@xuehao{} \def\miji#1{\def\HUST@miji{#1}}\def\HUST@miji{} \def\schoolcode#1{\def\HUST@schoolcode{#1}}\def\HUST@schoolcode{} \def\ctitle#1{\def\HUST@ctitle{#1}}\def\HUST@ctitle{} \def\cdegree#1{\def\HUST@cdegree{#1}}\def\HUST@cdegree{} \def\csubjectname#1{\def\HUST@csubjectname{#1}}\def\HUST@csubjectname{} \def\cauthorname#1{\def\HUST@cauthorname{#1}}\def\HUST@cauthorname{} \def\csupervisoronename#1{\def\HUST@csupervisoronename{#1}}\def\HUST@csupervisoronename{} \def\csupervisortwoname#1{\def\HUST@csupervisortwoname{#1}}\def\HUST@csupervisortwoname{} \def\csupervisoronetitle#1{\def\HUST@csupervisoronetitle{#1}}\def\HUST@csupervisoronetitle{} \def\csupervisortwotitle#1{\def\HUST@csupervisortwotitle{#1}}\def\HUST@csupervisortwotitle{} \def\csupervisortitle#1{\def\HUST@csupervisortitle{#1}}\def\HUST@csupervisortitle{} \def\defencedate#1{\def\HUST@defencedate{#1}}\def\HUST@defencedate{} \def\grantdate#1{\def\HUST@grantdate{#1}}\def\HUST@grantdate{} \def\chair#1{\def\HUST@chair{#1}}\def\HUST@chair{} \def\firstreviewer#1{\def\HUST@firstreviewer{#1}}\def\HUST@firstreviewer{} \def\secondreviewer#1{\def\HUST@secondreviewer{#1}}\def\HUST@secondreviewer{} \def\thirdreviewer#1{\def\HUST@thirdreviewer{#1}}\def\HUST@thirdreviewer{} \long\def\cabstract#1{\long\def\HUST@cabstract{#1}}\long\def\HUST@cabstract{} \def\ckeywords#1{\def\HUST@ckeywords{#1}}\def\HUST@ckeywords{} \def\etitle#1{\def\HUST@etitle{#1}}\def\HUST@etitle{} \def\edegree#1{\def\HUST@edegree{#1}}\def\HUST@edegree{} \def\eaffil#1{\def\HUST@eaffil{#1}}\def\HUST@eaffil{} \def\esubject#1{\def\HUST@esubject{#1}}\def\HUST@esubject{} \def\eauthor#1{\def\HUST@eauthor{#1}}\def\HUST@eauthor{} \def\esupervisorone#1{\def\HUST@esupervisorone{#1}}\def\HUST@esupervisorone{} \def\esupervisortwo#1{\def\HUST@esupervisortwo{#1}}\def\HUST@esupervisortwo{} % \def\eassosupervisor#1{\def\HUST@eassosupervisor{#1}}\def\HUST@eassosupervisor{} % \def\ecosupervisor#1{\def\HUST@ecosupervisor{~ & #1\\}}\def\HUST@ecosupervisor{} \def\edate#1{\def\HUST@edate{#1}}\def\HUST@edate{} \newcommand{\tabincell}[2]{\begin{HUST@tabular}{@{}#1@{}}#2\end{HUST@tabular}} \long\def\eabstract#1{\long\def\HUST@eabstract{#1}}\long\def\HUST@eabstract{} \def\ekeywords#1{\def\HUST@ekeywords{#1}}\def\HUST@ekeywords{} \def\dctab#1{\def\HUST@dctab{#1}}\def\HUST@dctab{} % 中文封面 \newcommand{\HUST@ctitlepage}{ \begin{center} \vspace*{-3.3cm} \parbox[t][2.2cm][t]{\textwidth}{\xiaosi \bfseries \begin{center}\song \setlength{\tabcolsep}{0pt} \setlength{\extrarowheight}{3pt} \begin{HUST@tabular}{p{4em}p{5em}p{\textwidth-18em}p{2em}p{12em}} \HUST@classno & \makebox[0pt][l]{\rule[-2.0pt]{5em}{1pt}} & \hfill & \HUST@studentno & \makebox[0pt][l]{\rule[-2.0pt]{7em}{1pt}}{\hspace{1em}\HUST@xuehao} \tabularnewline \HUST@UDC & \makebox[0pt][l]{\rule[-2.0pt]{5em}{1pt}}{\hfill\HUST@schoolcode\hfill\hfill} & \hfill & \HUST@secrettitle & \makebox[0pt][l]{\rule[-2.0pt]{7em}{1pt}}{\hspace{2.5em}\HUST@miji} \tabularnewline \end{HUST@tabular} \end{center} } \parbox[t][7cm][t]{\textwidth}{ %\renewcommand{\baselinestretch}{1.5} \vspace{2.0cm} \begin{center} \includegraphics[scale=0.9]{supply/figures/hust_label.png}\\[1.3cm] \vspace{-0.8cm} \ziju{5bp}\dachu[1]{\bfseries \zhongsong \HUST@apply} \\%\CJKfamily{fzcs} \vspace{-0.4cm} \ziju{1bp}\bf{\xiaosan[1]{( 学术型$\mbox{\ooalign{$\checkmark$\cr\hidewidth$\square$\hidewidth\cr}}$ $\quad \quad$ 专业型$\square$ )}} \end{center}}\\ \parbox[t][4cm][t]{\paperwidth-7cm}{ \vspace{3.0cm} \begin{center} \yihao[1.3] {\bf \song \HUST@ctitle}%\CJKfamily{fzcs} \end{center}} \parbox[t][7.4cm][t]{\textwidth}{\vspace{5cm}\xiaosan[1.5] \bf \begin{center}\song \setlength{\extrarowheight}{2.5pt} \begin{HUST@tabular}{p{5em}ll} \HUST@cauthor & \HUST@title@sep & {\HUST@cauthorname} \vspace{0.4em}\\ \HUST@csubject & \HUST@title@sep & {\HUST@csubjectname} \vspace{0.4em}\\ \HUST@csupervisor & \HUST@title@sep & {\HUST@csupervisoronename\hspace{1em}\HUST@csupervisoronetitle} \vspace{0.4em}\\ \ifx\HUST@csupervisortwoname\@empty \ifx\HUST@csupervisortwotitle\@empty \else & & {\HUST@csupervisortwoname\hspace{1em}\HUST@csupervisortwotitle} \vspace{0.4em}\\ % 头衔存在时显示 \fi \else & & {\HUST@csupervisortwoname\hspace{1em}\HUST@csupervisortwotitle} \vspace{0.4em}\\ % 名字存在时显示 \fi \HUST@cdefencedate & \HUST@title@sep & {\ziju{3bp}\HUST@defencedate} \end{HUST@tabular} \end{center}} % 下面是原来封面的命令设置 \iffalse \parbox[t][2cm][t]{\paperwidth-5.6cm}{{\sihao[1.5] \begin{center}\song \begin{HUST@tabular}{p{7.6cm}p{7.6cm}} \HUST@cdefencedate\makebox[0pt][l]{\rule[-2.5pt]{9em}{1pt}}{\hspace{1em}{\ziju{3bp}\HUST@defencedate}\hfill } & {\HUST@cgrantdate}\makebox[0pt][l]{\rule[-2.5pt]{9em}{1pt}}{\hspace{1em}{\ziju{3bp}\HUST@grantdate}\hspace{3em}}\\ \HUST@cchair\makebox[0pt][l]{\rule[-2.5pt]{8em}{1pt}}{\hfill {\HUST@chair}\hfill \hfill } & {\HUST@creviewers}\makebox[0pt][l]{\rule[-2.5pt]{3.5em}{1pt}}{\hfill \HUST@firstreviewer\hfill \hfill }\makebox[0pt][l]{\rule[-2.5pt]{3.5em}{1pt}}{\hfill \HUST@secondreviewer\hfill \hfill }\makebox[0pt][l]{\rule[-2.5pt]{3.5em}{1pt}}{\hfill \HUST@thirdreviewer\hfill }\hfill \hfill \end{HUST@tabular} \end{center}}} \fi \end{center}} % 答辩委员会 \newcommand{\HUST@defencecommittee}{ \begin{center}\song\sanhao {\hei\bfseries 答辩委员会}\\ \vspace{2.0cm} \sihao \renewcommand{\arraystretch}{2} \HUST@dctab \end{center} } % 英文封面 \newcommand{\HUST@etitlepage}{% \begin{center} \vspace*{-1.2cm} \parbox[t][5.2cm][t]{\textwidth}{ \renewcommand{\baselinestretch}{1.5} \begin{center} \xiaosan[1.1] \textbf{A Dissertation Submitted in Partial Fulfillment of the Requirements for the Degree of \HUST@edegree} \end{center}} \parbox[t][5.5cm][t]{\textwidth}{ \vspace{1.8cm} \renewcommand{\baselinestretch}{1.3} \begin{center} \erhao \textbf{\HUST@etitle} \end{center}} \vspace*{2cm} \parbox[t][2.1cm][t]{\textwidth-4cm}{ \vspace{1cm} \xiaosan[1.2]\bfseries\centering% \begin{HUST@tabular}{lrp{20em}} Ph.D. Candidate & : & \HUST@eauthor\\ \vspace{-0.3pt}\\ Major & : & \HUST@esubject\\ \vspace{-0.3pt}\\ Supervisor & : & \HUST@esupervisorone\\ \vspace{-0.3pt}\\ \ifx\HUST@esupervisortwo\@empty % \fi \else & & \HUST@esupervisortwo \fi \end{HUST@tabular} } \vspace*{1.6cm} \parbox[t][6cm][b]{\paperwidth-7.2cm}{ \begin{center} \sihao[2.0] {\bf{Huazhong University of Science and Technology\\ Wuhan~430074, P.~R.~China\\ \HUST@edate}} \end{center}} \end{center}} % 版权页 \newcommand{\HUST@authorization@mk}{% %\vspace*{1cm} \begin{center} \parbox[t]{\textwidth}{\sanhao \hei \centerline{\HUST@declare}} \vspace{1cm} \parbox[t]{\textwidth}{\xiaosi[2]\HUST@declaretext} \vspace{1cm} \parbox[t]{\textwidth}{\xiaosi[1.5] \hfill \begin{HUST@tabular}{ll} \HUST@authorsig & \hspace{-2em} \vspace{0.5cm}\\ \HUST@frontdate & \hspace{-2em} \\ \end{HUST@tabular}}\\ \vspace{2cm} \begin{center} \parbox[t][3cm][c]{\textwidth}{\sanhao \hei \centerline{ \HUST@authtitle}} \parbox[t][3cm][c]{\textwidth}{\xiaosi[2]\HUST@authorization}\\ \hspace*{2em}\parbox[t][2cm][c]{\textwidth}{\xiaosi[2]\HUST@authorizationaddon}\\ \vspace{-1em} \hspace*{2em}\parbox[t][2cm][c]{\textwidth}{\xiaosi[2]\HUST@authorizationcheck}\\ \vspace{-2cm} \hspace*{2em}\parbox[t][3cm][b]{\textwidth-2em}{\xiaosi[1.5] \begin{HUST@tabular}{ll} \hspace{-1.5em} \HUST@authorsig & \hspace{-2em} \vspace{0.5cm}\\ \hspace{-1.5em} \HUST@frontdate & \hspace{-2em} \\ \end{HUST@tabular} \hfill \begin{HUST@tabular}{ll} \HUST@teachersig & \hspace{-2.4em} \vspace{0.5cm}\\ \HUST@frontdate & \hspace{-2.4em} \\ \end{HUST@tabular}} \end{center} \end{center}} % 定义封面 \makecover \newcommand{\makecover}{ \pagenumbering{Roman} \begin{titlepage} \HUST@ctitlepage \clearpage\thispagestyle{empty}\HUST@defencecommittee \clearpage\thispagestyle{empty}\HUST@etitlepage \end{titlepage} \clearpage\thispagestyle{empty}\HUST@authorization@mk \HUST@makeabstract} % 为了符合学校单面打印的要求,重定义 \mainmatter \renewcommand\mainmatter{% \clearpage \@mainmattertrue \pagenumbering{arabic}} % 定义中英文摘要 \newcommand{\HUST@makeabstract}{% %改动5 % 定义中文摘要 \clearpage \setcounter{page}{1} \phantomsection \titlecontents{chapter}%重定义摘要的目录项格式 %有指引线,有页码,页码无括号 [0.0em] {\bfseries\hei\addvspace{6bp minus6bp}} {\thecontentslabel\hspace{1em}} {} {\normalfont\dotfill\textrm{\bfseries\contentspage}} \addcontentsline{toc}{chapter}{\sihao 摘~~~~要} \chapter*{\bfseries\hei\abstractname} \markboth{\abstractshortname}{\abstractshortname} \HUST@cabstract \\[1em] \noindent\begin{HUST@tabular}{@{}p{4em}@{}p{\textwidth-4em}} \\ {\hei\HUST@keywords} & \HUST@ckeywords \\ \end{HUST@tabular} % 定义英文摘要 \clearpage \phantomsection \addcontentsline{toc}{chapter}{\sihao Abstract} \normalsize \chapter*{{\bfseries Abstract}} \markboth{Abstract}{Abstract} \HUST@eabstract \\[1em] \noindent\begin{HUST@tabular}{@{}p{5em}@{}p{\textwidth-5em}} {\textbf{Keywords:}} & \hspace{0.4em} \HUST@ekeywords\\ \end{HUST@tabular} \disabledottedtoc% } % 定义“符号对照表”环境,可选 %改动6 % 定义封底的“致谢” %改动7 \newenvironment{ack}{ \clearpage \phantomsection \enabledottedtoc \addcontentsline{toc}{chapter}{\sihao \HUST@ackname} \normalsize \chapter*{\HUST@ackname}} {} % 定义附录及其目录项格式 %改动8 \let\HUST@appendix\appendix \renewenvironment{appendix}{% \HUST@appendix %\gdef\@chapapp{\appendixname}~\thechapter \def\@makechapterhead##1{%重定义附录章节标题格式 \vspace*{24bp}% \begingroup \centering \ifnum \c@secnumdepth >\m@ne \hei\sanhao[1]\appendixname~\thechapter\hskip1em \fi \interlinepenalty\@M ##1\par\endgroup \nobreak \vskip 20bp } \gdef\thechapter{\@arabic\c@chapter} \renewcommand\theequation{\ifnum \c@chapter>\z@ \thechapter-\fi \@arabic\c@equation} \titlecontents{chapter} [0.0em] {\vspace{0.45em}\bfseries\hei\sihao\addvspace{6bp minus6bp}} {\appendixname~\thecontentslabel\hspace{1em}} {} {\normalfont\dotfill\textrm{\contentspage[(\thecontentspage)]}} }{} % 定义封底的“答辩委员会决议” \newenvironment{decision}{ \phantomsection \chapter{\HUST@decision@title} \markboth{\HUST@decision@title}{\HUST@decision@title} } % 定义封底的“攻读博士学位期间取得的研究成果” \newenvironment{publications}{ % \clearpage \phantomsection \chapter{\HUST@publication@title} \markboth{\HUST@publication@title}{\HUST@publication@title} } % 定义封底的“已发表论文与博士学位论文的关系” \newenvironment{paperRelation}{ \phantomsection \chapter{\HUST@paperRelation@title} \markboth{\HUST@paperRelation@title}{\HUST@paperRelation@title} % 在此处添加已发表论文与博士学位论文的关系的内容 } % 定义封底的“攻读博士学位期间参与的科研项目” \newenvironment{project}{ % \clearpage \phantomsection \chapter{\HUST@project@title} } \newenvironment{denotation}{ %\cleardoublepage \phantomsection % \titlecontents{chapter} % [0.0em] % {\bfseries\hei\addvspace{6bp minus6bp}} % {\thecontentslabel\hspace{1em}} % {} % {\normalfont\dotfill\textrm{\bfseries\contentspage}} % \addcontentsline{toc}{chapter}{\sihao \HUST@denotation@name} \chapter{\HUST@denotation@name} \markboth{\HUST@denotation@name}{\HUST@denotation@name} \xiaosi[1.6] \noindent\begin{list}{}% {\renewcommand\makelabel[1]{##1\hfil} \setlength{\labelwidth}{2.5cm} %标签盒子宽度 \setlength{\labelsep}{0.5cm} %标签与列表文本距离 \setlength{\itemindent}{0cm} %标签缩进量 \setlength{\leftmargin}{\labelwidth+\labelsep} %左边界 \setlength{\rightmargin}{0cm} \setlength{\parsep}{0cm} %段落间距 \setlength{\itemsep}{0cm} %标签间距 \setlength{\listparindent}{0cm} %段落缩进量 \setlength{\topsep}{0pt} %标签与上文的间距 } \disabledottedtoc} {\end{list}}%%%%% % 定义封底的“已发表论文与博士学位论文的关系” \newenvironment{otherDatas}{ \phantomsection \chapter{\HUST@otherDatas@title} \markboth{\HUST@otherDatas@title}{\HUST@otherDatas@title} % 在此处添加已发表论文与博士学位论文的关系的内容 } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定义参考文献样式 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 结合 natbib 宏包定义参考文献样式 \bibpunct{[}{]}{,}{s}{}{,} \renewcommand\NAT@citesuper[3]{\ifNAT@swa \unskip\kern\p@\textsuperscript{\NAT@@open #1\NAT@@close}% \if*#3*\else\ (#3)\fi\else #1\fi\endgroup} \DeclareRobustCommand\inlinecite{\@inlinecite} \def\@inlinecite#1{\begingroup\let\@cite\NAT@citenum\citep{#1}\endgroup} \renewenvironment{thebibliography}[1]{ \clearpage \phantomsection % make sure the hyperlink is correct \enabledottedtoc% \addcontentsline{toc}{chapter}{\sihao \bibname}% \chapter*{\bibname}% \markboth{\bibname}{\bibname}% \xiaosi[1.5] \list{\@biblabel{\@arabic\c@enumiv}}% {\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \addtolength{\itemsep}{-0.6em} \usecounter{enumiv}% \let\p@enumiv\@empty \renewcommand\theenumiv{\@arabic\c@enumiv}}% \sloppy \clubpenalty4000 \@clubpenalty \clubpenalty \widowpenalty4000% \interlinepenalty4000% \sfcode`\.\@m} {\def\@noitemerr {\@latex@warning{Empty `thebibliography' environment}}% \endlist} \urlstyle{same}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定义生成索引的命令,暂时用不到 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse \newcommand{\bs}{\symbol{'134}}%Print backslash % \newcommand{\bs}{\ensuremath{\mathtt{\backslash}}}%Print backslash % Index entry for a command (\cih for hidden command index \newcommand{\cih}[1]{% \index{commands!#1@\texttt{\bs#1}}% \index{#1@\texttt{\hspace*{-1.2ex}\bs #1}} } \newcommand{\ci}[1]{\cih{#1}\texttt{\bs#1}} % Package \newcommand{\pai}[1]{% \index{packages!#1@\textsf{#1}}% \index{#1@\textsf{#1}}% \textsf{#1}} % Index entry for an environment \newcommand{\ei}[1]{% \index{environments!\texttt{#1}}% \index{#1@\texttt{#1}}% \texttt{#1}} % Indexentry for a word (Word inserted into the text) \newcommand{\wi}[1]{\index{#1}#1} \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 自定义命令 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 定义字距 \newcommand*{\ziju}[1]{\renewcommand{\CJKglue}{\hskip #1}} % % 定义破折号 \newcommand{\pozhehao}{\kern0.3ex\rule[0.8ex]{2em}{0.1ex}\kern0.3ex} % 定义关键字的间距 \newcommand{\keyspace}{\hspace{2em}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 开启 CJK 环境,加载 HUSTthesis.cpx 中文配置文件 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \theoremseparator{:} \newtheorem{definition}{定义}[chapter] \newtheorem{proposition}{命题}[chapter] \newtheorem{lemma}{引理}[chapter] \newtheorem{theorem}{定理}[chapter] \newtheorem{axiom}{公理}[chapter] \newtheorem{corollary}{推论}[chapter] \newtheorem{exercise}{练习}[chapter] \newtheorem{example}{例}[chapter] \theoremsymbol{\ensuremath{\square}} \theoremstyle{nonumberplain} \newtheorem{proof}{\bfseries \hei{证明}} \renewcommand\contentsname{\hei \bfseries 目\hspace{2em}录} \renewcommand\listfigurename{插图} \renewcommand\listtablename{表格} \@ifundefined{chapter} {\renewcommand\refname{参考文献}} {\renewcommand\bibname{参考文献}} \renewcommand\indexname{索引} \renewcommand\figurename{图} \renewcommand\tablename{表} \newcommand\CJKprepartname{第} \newcommand\CJKpartname{部分} \newcommand\CJKthepart{\CJKnumber{\@arabic\c@part}} \newcommand\equname{式} \renewcommand\appendixname{附录} \newcommand{\abstractshortname}{摘\hspace{2em}要} \newcommand{\abstractname}{摘\hspace{2em}要} \let\CJK@todaysave=\today \def\CJK@todaysmall{~\the\year~年~\the\month~月~\the\day~日} \def\CJK@todaybig{\CJKdigits{\the\year}年\CJKnumber{\the\month}月\CJKnumber{\the\day}日} \def\CJK@today{\CJK@todaysmall} \renewcommand\today{\CJK@today} \newcommand\CJKtoday[1][1]{% \ifcase#1\def\CJK@today{\CJK@todaysave} \or\def\CJK@today{\CJK@todaysmall} \or\def\CJK@today{\CJK@todaybig} \fi} \def\HUST@i{①} \def\HUST@ii{②} \def\HUST@iii{③} \def\HUST@iv{④} \def\HUST@v{⑤} \def\HUST@vi{⑥} \def\HUST@vii{⑦} \def\HUST@viii{⑧} \def\HUST@ix{⑨} \def\HUST@x{⑩} \renewcommand\HUST@fnsymbol[1]{\ifcase#1 \or \ding{172}\or \ding{173}\or \ding{174}\or \ding{175}\or \ding{176}\or \ding{177}% \or \ding{178}\or \ding{179}\or \ding{180}\or \ding{181}\else *\fi\relax} \def\HUST@title@sep{\hspace{-0.5em}:\hspace{2em}} \def\HUST@schoolename{华中科技大学} %\def\HUST@schoolename{} %盲审,删去页眉 \def\HUST@classno{分\hfill 类\hfill 号} \def\HUST@studentno{学号} \def\HUST@UDC{学校代码} \def\HUST@secrettitle{密级} \def\HUST@apply{博士学位论文} \def\HUST@csubject{学\hfill 科\hfill 专\hfill 业} \def\HUST@cauthor{学\hfill 位\hfill 申\hfill 请\hfill 人} \def\HUST@csupervisor{指\hfill 导\hfill 教\hfill 师} \def\HUST@cdefencedate{答\hfill 辩\hfill 日\hfill 期} \def\HUST@cgrantdate{学位授予日期} \def\HUST@cchair{答辩委员会主席} \def\HUST@creviewers{评阅人} \edate{\ifcase \month \or January\or February\or March\or April\or May\or June\or July \or August\or September\or October\or November\or December\fi,\ \ \the\year} \newcommand{\HUST@authtitle}{学位论文版权使用授权书} \newcommand{\HUST@authorization}{% \hspace*{2em}本学位论文作者完全了解学校有关保留、使用学位论文的规定,即: 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印或扫描等复制手段保存和汇编本学位论文。} \newcommand{\HUST@authorizationaddon}{% 本论文属于 \tabincell{l}{保\hspace{1em}密$\square$,在~\makebox[2em]{\hrulefill} 年解密后适用本授权书。\\ 不保密~$\square$。} } \newcommand{\HUST@authorizationcheck}{% (请在以上方框内打“$\surd$”)} \newcommand{\HUST@authorsig}{学位论文作者签名:} \newcommand{\HUST@teachersig}{指导教师签名:} \newcommand{\HUST@frontdate}{日期:\hspace{2em}年\hspace{2em}月\hspace{2em}日} \newcommand{\HUST@keywords}{关键词:} \newcommand{\HUST@ackshortname}{致谢} \newcommand{\HUST@ackname}{致\hspace{1em}谢} \newcommand{\HUST@acklongname}{致谢与声明} \newcommand{\HUST@declare}{独创性声明} \newcommand{\HUST@declaretext}{\hspace{2em}本人声明所呈交的学位论文是我个人在导师的指导下进行的研究工作及取得的研究成果。 尽我所知,除文中已标明引用的内容外,本论文不包含任何其他人或集体已经发表或撰写过的研究成果。对本文的研究 做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。} \newcommand{\HUST@signature}{签\hspace{1em}名:} \newcommand{\HUST@backdate}{日\hspace{1em}期:} \newcommand{\HUST@decision@title}{答辩委员会决议} \newcommand{\HUST@publication@title}{攻读博士学位期间取得的研究成果} \newcommand{\HUST@paperRelation@title}{公开发表的学术成果与博士学位论文的关系} \newcommand{\HUST@patent@title}{攻读博士学位期间申请的发明专利和其他成果} \newcommand{\HUST@project@title}{攻读学位期间参加的科研项目} % \newcommand{\HUST@honor@title}{攻读博士学位期间所获奖励} \newcommand{\HUST@denotation@name}{中英文缩写对照表} \newcommand{\HUST@otherDatas@title}{其他数据图表或程序} \endinput %%%%%%%%%%%%%%%%%%%%%%%%%%%%% End of HUSTthesis.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%% % That's all folks! ================================================ FILE: HUSTtils.sty ================================================ \ProvidesPackage{HUSTtils}[2024/01/23 3.0.1x any packages you would like to use] %%%%% Setting for python env. \usepackage[utf8]{inputenc} \usepackage{setspace} % Default fixed font does not support bold face \DeclareFixedFont{\ttb}{T1}{txtt}{bx}{n}{9} % for bold \DeclareFixedFont{\ttm}{T1}{txtt}{m}{n}{9} % for normal % Custom colors \usepackage{color} \definecolor{deepblue}{rgb}{0,0,0.5} \definecolor{deepred}{rgb}{0.6,0,0} \definecolor{deepgreen}{rgb}{0,0.5,0} \usepackage[final]{listings} \usepackage{lstautogobble} \usepackage[ruled,linesnumbered,algo2e]{algorithm2e} \usepackage[export]{adjustbox} % Python style for highlighting \newcommand\pythonstyle{\lstset{ language=Python, breaklines=true, numbers=left, numberstyle=\tiny, basicstyle=\setstretch{0.7}\ttm, % otherkeywords={self}, % Add keywords here keywordstyle=\ttb\color{deepblue}, % \ttb %emph={MyClass,__init__}, % Custom highlighting emphstyle=\ttb\color{deepred}, % Custom highlighting style \ttb stringstyle=\color{deepred}, commentstyle=\color{deepgreen}, frame=tb, % Any extra options here showstringspaces=false, % xleftmargin=2em, framexleftmargin=2.5em, autogobble=true, literate={-}{-}1 }} \newcommand\knote[1]{\textcolor{blue}{#1}} %\newcommand\knote[1]{\textcolor{black}{#1}} \newcommand\snote[1]{\textcolor{red}{#1}} % Python environment \lstnewenvironment{python}[1][] { \pythonstyle \lstset{#1} } {} % Python for external files \newcommand\pythonexternal[2][]{{ \pythonstyle \lstinputlisting[#1]{#2}}} % Bash %\def\backtick{\char768} \def\backtick{\`{}} \newcommand\bashstyle{\lstset{ language=bash, breaklines=true, numbers=left, numberstyle=\tiny, basicstyle=\setstretch{0.7}\ttm, % otherkeywords={self}, % Add keywords here keywordstyle=\ttb\color{deepblue}, % \ttb %emph={MyClass,__init__}, % Custom highlighting emphstyle=\ttb\color{deepred}, % Custom highlighting style \ttb stringstyle=\color{deepred}, commentstyle=\color{deepgreen}, frame=tb, % Any extra options here showstringspaces=false, % xleftmargin=2em, framexleftmargin=2.5em, upquote=true, autogobble=true, %literate={`}{{$^{\backprime}$}}1 % literate={`}{\backtick}1 literate={-}{-}1 }} % Python environment \lstnewenvironment{bash}[1][] { \bashstyle \lstset{#1} } {} % Bash for external files \newcommand\bashexternal[2][]{{ \bashstyle \lstinputlisting[#1]{#2}}} %%%%% Setting for python env. \endinput ================================================ FILE: README.md ================================================ # HUST-PhD-Thesis-Latex HUSTThesis.cls 2025/07/24 version V3.1.4x; _ThesisBeamer/beamerthemeBFH.sty 2024/01/31 version V1.1.1x This is the unofficial LaTeX class for Ph.D. Thesis Template of Huazhong University of Science and Technology. 'x' denotes the branch modified by Xinze Zhang. --- 目前学校对于博士、硕士学位论文的撰写规定文件主要有3个: 1. [华中科技大学博士、硕士学位论文撰写规定, 校研〔2009〕39号](https://gs.hust.edu.cn/info/1022/1027.htm)。该文件规定了论文撰写的基本格式,包括题目、摘要和关键词、引言、正文、参考文献等的格式规定。 2. [学位申请相关文档下载](https://gs.hust.edu.cn/info/1135/6335.htm)。该文档提供了学位申请的相关文档格式规范,其中包括了博士与硕士论文封面及独创性声明页的word模板。 3. [2024研究生手册](https://gs.hust.edu.cn/info/1137/6338.htm)。该文档是研究生管理的规范性文件,p239~245页具体展示了[华中科技大学博士、硕士学位论文撰写规定, 校研〔2009〕39号](https://gs.hust.edu.cn/info/1022/1027.htm)的详细内容。 --- 建议在本地安装texlive的最新版,华科校内可使用校内镜像站https://mirrors.hust.edu.cn/CTAN/systems/texlive/Images/ 建议使用vscode编辑器+LaTex Workshop插件。模板已提供插件的配置文件`.vscode/settings.json`。 --- Available class options (e.g., \documentclass[draftformat,blackhead]{HUSTthesis} *** choose only one from each category *** draftformat, finalformat 提交草稿打开 draftformat 选项,提交盲审版打开 finalformat 选项。 草稿正文页包括页眉(“华中科技大学博士学位论文”),页眉修饰线(双线)。 页脚(页码),页脚修饰线(单线)。 盲审版正文页不包括页眉、页眉修饰线和页脚修饰线,仅包含页脚。 blackhead, redhead 页眉颜色选项,blackhead选项让页眉为黑色,redhead为红色。 --- 注意:遇到问题,如参考文献作者数量,建议先在closed issues中检索,可能已有回答。本模板仅供参考。不同学院,乃至同一学院的不同年份,对于学位论文的形式要求也可能不同。所以,对于一些学院的特定形式要求,还请自行调整。 另外,本人理解,模板在一定程度上是为了方便大家达到学术(形式)规范要求。对于学校提供的word模板,所有要求不见得必须严格遵守。例如附录章节的设置,不一定每篇学位论文都需要或存在这些章节。因此,在满足规范的前提下,建议大家灵活调整。 --- 07/2025 V3.1.4x changes: 附录参考学校模板进行了修改调整。 --- 04/2025 Thesis V3.1.3x changes: 1. 支持双导师. 默认支持单导师,双导师设置见`body/cover.tex`. 感谢[lxysl](https://github.com/lxysl)的PR. 2. 红色或黑色抬头可在导言区进行设置,例如`\documentclass[draftformat,blackhead]{HUSTthesis}` --- 01/2024 Thesis V3.1.2x changes: In this version, a mini example of the HUST thesis is provided. Compared with the older version, there are many improvements. Main modifications are summarized as follows: 1. Reorganized the file structure. 2. Extract the table of the defence committee members from`HUSTthesis.cls` to `body/cover.tex` 3. Many updates to`HUSTthesis.cls`, `HUSTtils.sty`, and `HUSTThesis.bst` 4. A template of workspace settings with`LaTex Workshop` extension in VSCode is provided in `.vscode/settings.json`. Under this configuration, the thesis pdf file will be automatically compiled with each saving action, and the aux. files will also be automatically cleaned. Beamer V1.1.1x changes: 1. Update _ThesisBeamer/beamerthemeBFH.sty. A default font setting, almost same with the setting in thesis templete, is provided in this version. Beamer V1.1.0x changes: 1. A beamer template is provided in '_ThesisBeamer/'. To use the template, configuring the folder of '_ThesisBeamer/' as the project folder, and the main file is 'slice.tex'. Besides, the corresponding workspace settings with`LaTex Workshop` extension in VSCode is provided in `_ThesisBeamer/.vscode/settings.json`. In the future, the version with a postfix 'x' denotes the branch modified by Xinze, which may be different with the version published by Dr. Li Lianghao. Users can compare different versions for reference. Over the next three years (2024~2027), as the post-doctoral period of Xinze in HUST, this branch will be updated irregularly. Best wishes to all Ph.D candidates. by Zhang Xinze (xinze@hust.edu.cn) --- 09/2021 V3.1 changes: modify class file (HUSTthesis.cls): 1. update the defence committee page between Chinese and English cover 2. update the indentation and spacing of the itemize, enumerate and description 3. update the reference list according to the latest standard 4. update the appendixs according to the latest standard by Li Lianghao (lianghao1993@hust.edu.cn) --- 11/2020 V3.0 changes: 1. modify class file (HUSTthesis.cls): 1.1 update the location of 学号(xuehao) of covering page 1.2 update the table length of the emajor 1.3 update the font specification with using the font locally, enabling this project be compiled on overleaf 1.4 remove the font command of lishu and youyuan 2. change the folder name of ./data/* to ./body/* and update the information of xinze zhang by Zhang Xinze (xinze@hust.edu.cn) --- 06/2006 V2.0 changes: 1. wrote class file (HUSTthesis.cls) based on ThuThesis.cls written by Xue Ruini, the class file is designed for Doctoral Thesis of HUST. 2. define new Itemize, Enumerate and Description environments with compact spacing by Liu Huikan (hkliu@mail.edu.cn) --- 04/2004 V1.0 released (Feng Jiang) by Feng Jiang (fjiang@people.com.cn) ---- HUSTThesis.cls contributors: Xinze Zhang, lxysl(2025 V3.1.3x), Lianghao Li, Jianqing Lin (2021 V3.1), Xinze Zhang (2020 V3.0), Huikan Liu (2006 V2.0), and Feng Jiang (2005 V1.0). Copyright (C) 2020-2021 by Xinze Zhang Copyright (C) 2006-2007 by Huikan Liu _ThesisBeamer contributors: Xinze Zhang (2024 V1.1x) This code is distributed under the Perl Artistic License ( http://language.perl.com/misc/Artistic.html ) and may be freely used, distributed and modified. Retain the contribution notices and credits. Current maintainer: xinze@hust.edu.cn ================================================ FILE: _ThesisBeamer/.vscode/settings.json ================================================ { "latex-workshop.latex.autoBuild.run": "onSave", "latex-workshop.latex.recipe.default": "lastUsed", "latex-workshop.latex.tools": [ { "name": "xelatex", "command": "xelatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" ], "env": {} }, { "name": "bibtex", "command": "bibtex", "args": [ "%DOCFILE%" ], "env": {} }, ], "latex-workshop.latex.recipes": [ { "name": "xelatex*2", "tools": [ "xelatex", "xelatex", ] } ], "latex-workshop.latex.clean.fileTypes": [ "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof", "*.lot", "*.out", "*.toc", "*.acn", "*.acr", "*.alg", "*.glg", "*.glo", "*.gls", "*.fls", // "*.log", "*.fdb_latexmk", "*.snm", "*.synctex(busy)", "*.synctex.gz(busy)", "*.nav", "*.vrb", "*.thm", "*.xdv" ], "latex-workshop.latex.autoClean.run": "onBuilt", "cSpell.enabled": false } ================================================ FILE: _ThesisBeamer/beamerthemeBFH.sty ================================================ \mode \RequirePackage{caption} \RequirePackage{subcaption} \RequirePackage{hyperref} \captionsetup{figurename = 图} \renewcommand\indexname{索引} \renewcommand\figurename{图} \renewcommand\tablename{表} \newcommand\equname{式} \def\figureautorefname{图}% \def\tableautorefname{表}% \def\equationautorefname{公式} \def\thefigure{\@arabic\c@figure} \def\fnum@figure{\figurename~\thefigure} \def\thetable{\@arabic\c@table} \def\fnum@table{\tablename~\thetable} % Requirement \RequirePackage{tikz} % Settings \defbeamertemplate*{title page}{BFH}{ % % \vspace*{5mm} % \begin{flushright} % \includegraphics[height=15mm]{./images/hust-logo.png}\par % \end{flushright} % % \vspace*{5mm} \vspace{4em} % \begin{beamercolorbox}[wd=\paperwidth,ht=.4ex]{upper separation line head} % \end{beamercolorbox}% \nointerlineskip \begin{beamercolorbox}[wd=\paperwidth,ht=5em,dp=0em,center]{title} \vbox to 5em{ \vfil \vspace{1ex} \usebeamerfont{title}\strut\inserttitle\strut\par % \usebeamerfont{subtitle}\insertsubtitle\par \vfil } \end{beamercolorbox} % \begin{beamercolorbox}[wd=\paperwidth,center]{title} % \usebeamerfont{subtitle}\insertsubtitle\par % \end{beamercolorbox} \nointerlineskip % \begin{beamercolorbox}[wd=\paperwidth,ht=.4ex]{lower separation line head} % \end{beamercolorbox}% \begin{center} \usebeamerfont{author}\insertauthor\par \vspace{1ex} \usebeamerfont{institute}\insertinstitute\par \vspace{2ex} % \usebeamerfont{institute}\insertemail\par \vspace{1ex} \usebeamerfont{institute}\insertdate\par % \vspace{2ex} % \vspace{1ex} \inserttitlegraphic\par \end{center} } \setbeamertemplate{section in toc}[square] % \useoutertheme{BFH} \addtobeamertemplate{frametitle}{}{ \nointerlineskip% \begin{beamercolorbox}[wd=\paperwidth,colsep=1pt]{upper separation line head}% \end{beamercolorbox} } \defbeamertemplate*{footline}{BFH} { \leavevmode% \hbox{% \begin{beamercolorbox}[wd=.33333333\paperwidth,ht=2.25ex,dp=1ex,leftskip=.3cm,rightskip=.3cm plus1fil]{author in head/foot}% \usebeamerfont{author in head/foot}\insertshortauthor \end{beamercolorbox}% \begin{beamercolorbox}[wd=.3333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}% \usebeamerfont{title in head/foot}\insertshortinstitute \end{beamercolorbox}% \begin{beamercolorbox}[wd=.3333333\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}% \usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em} \insertframenumber{} / \inserttotalframenumber \hspace*{2ex} \end{beamercolorbox}}% \vskip0pt% } \RequirePackage{xeCJK} \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} \newcommand\ziju[2]{\vbox{\ltjsetparameter{kanjiskip=#1} #2}} %% ---------- %% You can change the font with any font you like if the font is installed in your system %% Else, use the font in the supply folder as the main font. %% ---------------------------------------- %% The following provided a font settings with installed fonts. % \setCJKmainfont[AutoFakeBold = {2.25},ItalicFont={AdobeKaitiStd-Regular}]{AdobeKaitiStd-Regular} % \setCJKsansfont{AdobeKaitiStd-Regular} % \setCJKmonofont{AdobeFangsongStd-Regular} % \setsansfont{Source Sans Pro} % \setmainfont{Source Code Pro for Powerline} % \newfontfamily\HEI{AdobeHeitiStd-Regular} % \newfontfamily\KAI{AdobeKaitiStd-Regular} % \newfontfamily\FANGSONG{AdobeFangsongStd-Regular} % \newcommand{\hei}[1]{{\fontspec{AdobeHeitiStd-Regular} #1}} % \newcommand{\kai}[1]{{\fontspec{AdobeKaitiStd-Regular} #1}} % \newcommand{\fangsong}[1]{{\fontspec{AdobeFangsongStd-Regular} #1}} % ---------------------------------------- % The following provided a font settings with uninstalled fonts. \setCJKmainfont[Path=supply/font/,AutoFakeBold = {2.25},ItalicFont={simkai.ttf}]{SimSun.ttf} \setCJKsansfont[Path=supply/font/,AutoFakeBold = {2.25},ItalicFont={simkai.ttf}]{SimHei.ttf} \setCJKmonofont[Path=supply/font/,AutoFakeBold = {2.25},ItalicFont={simkai.ttf}]{STZhongsong.ttf} \setmainfont{Times New Roman} % \RequirePackage{mathptmx} % \RequirePackage{courier} % \RequirePackage{bm} \setCJKfamilyfont{hei}[Path=supply/font/,AutoFakeBold = {2.25}]{SimHei.ttf} \setCJKfamilyfont{kai}[Path=supply/font/,AutoFakeBold = {2.25}]{simkai.ttf} \setCJKfamilyfont{fs}[Path=supply/font/,AutoFakeBold = {2.25}]{simfang.ttf} \newcommand{\fangsong}{\CJKfamily{fs}} % 仿宋体 \let\FANGSONG\fs \newcommand{\kai}{\CJKfamily{kai}} % 楷体 \let\KAI\kai \newcommand{\hei}{\CJKfamily{hei}} % 黑体 \let\HEI\hei \usepackage[T1]{fontenc} \usefonttheme{serif} % \usecolortheme{BFH} %% % COLOR DEFINITION %% \definecolor{BFHd}{RGB}{110,124,143} % BFH dark % \definecolor{BFHd}{RGB}{8,84,155} % BFH dark \definecolor{BFHl}{RGB}{192,189,190} % Hust - light grey % \definecolor{BFHl}{RGB}{50,113,172} % Hust - light blue % \definecolor{BFHl}{RGB}{8,84,155} % Hust - blue % \definecolor{black}{RGB}{0,0,0} % Text Color \definecolor{black}{HTML}{222222} % Text Color \definecolor{white}{RGB}{255,255,255} % Background Color \setbeamercolor{titlelike}{bg=BFHd,fg=white} \setbeamercolor{structure}{fg=BFHd} \setbeamercolor{separation line}{bg=BFHl} \setbeamercolor{subsection in toc}{fg=BFHd} \setbeamercolor{footline}{bg=BFHd,fg=white} \setbeamercolor{author in head/foot}{bg=BFHd,fg=white} \setbeamercolor{title in head/foot}{bg=BFHd,fg=white} \setbeamercolor{date in head/foot}{bg=BFHd,fg=white} \setbeamertemplate{frametitle}[BFH] \setbeamertemplate{part page}[BFH] \setbeamertemplate{title page}[BFH] \setbeamertemplate{navigation symbols}{} % \setbeamertemplate{itemize item}{\usebeamerfont*{itemize item}\raise1.25pt\hbox{\donotcoloroutermaths$\bullet$}} \setlength{\parskip}{0.5em} % \setbeamercolor{itemize item}{fg=BFHl} % \setbeamercolor{itemize subitem}{fg=BFHl} % \setbeamercolor{itemize subsubitem}{fg=BFHl} \usepackage{enumitem} \setlistdepth{9} \setlist[itemize,1]{label=\color{BFHl}{$\bullet$}} \setlist[itemize,2]{label=\color{BFHl}{$\circ$}} \setlist[itemize,3]{label=\color{BFHl}{$\diamond $}} \setlist[itemize,4]{label=\color{BFHl}{$\bullet$}} \setlist[itemize,5]{label=$\bullet$} \setlist[itemize,6]{label=$\bullet$} \setlist[itemize,7]{label=$\bullet$} \setlist[itemize,8]{label=$\bullet$} \setlist[itemize,9]{label=$\bullet$} %------------------------------------------------------------------------------- % Configuration for colors %------------------------------------------------------------------------------- % Gray-scale colors % \definecolor{white}{HTML}{FFFFFF} % \definecolor{black}{HTML}{000000} \definecolor{darkgray}{HTML}{333333} \definecolor{gray}{HTML}{5D5D5D} \definecolor{lightgray}{HTML}{999999} % Basic colors \definecolor{green}{HTML}{C2E15F} \definecolor{orange}{HTML}{FDA333} \definecolor{purple}{HTML}{D3A4F9} \definecolor{red}{HTML}{FB4485} \definecolor{blue}{HTML}{6CE0F1} % Text colors \definecolor{darktext}{HTML}{414141} \colorlet{text}{darkgray} \definecolor{graytext}{HTML}{5D5D5D} \colorlet{lighttext}{lightgray} % Awesome colors \definecolor{awesome-emerald}{HTML}{00A388} \definecolor{awesome-skyblue}{HTML}{0395DE} \definecolor{awesome-red}{HTML}{DC3522} \definecolor{awesome-pink}{HTML}{EF4089} \definecolor{awesome-orange}{HTML}{FF6138} \definecolor{awesome-nephritis}{HTML}{27AE60} \definecolor{awesome-concrete}{HTML}{95A5A6} \definecolor{awesome-darknight}{HTML}{131A28} \colorlet{awesome}{awesome-red} % For elements of entry \newcommand*{\entrytitlestyle}[1]{{\fontsize{12pt}{1em}\KAI\color{darktext} #1}} \newcommand*{\entrypositionstyle}[1]{{\fontsize{12pt}{1em}\KAI\color{darktext} #1}} \newcommand*{\entrydatestyle}[1]{{\fontsize{12pt}{1em}\KAI\color{darktext} #1}} \newcommand*{\entrylocationstyle}[1]{{\fontsize{12pt}{1em}\KAI\color{awesome} #1}} \newcommand*{\descriptionstyle}[1]{{\fontsize{9pt}{1em}\KAI\color{text} #1}} \newcommand*{\des}[1]{{\fontsize{9pt}{1em}\KAI\color{text} #1}} % For elements of subentry \newcommand*{\subentrytitlestyle}[1]{{\fontsize{10pt}{1em}\KAI\slshape\color{darktext} #1}} % \newcommand*{\subentrytitlestyle}[1]{{\fontsize{9pt}{1em}\KAI\normalfont\color{darktext} #1}} \newcommand*{\subentrypositionstyle}[1]{{\fontsize{12pt}{1em}\KAI\scshape\color{graytext} #1}} \newcommand*{\subentrydatestyle}[1]{{\fontsize{10pt}{1em}\color{graytext} #1}} \newcommand*{\subentrylocationstyle}[1]{{\fontsize{12pt}{1em}\KAI\upshape\color{awesome} #1}} \newcommand*{\subdescriptionstyle}[1]{{\fontsize{10pt}{1em}\KAI\itshape\color{text} #1}} % For elements of honor \newcommand*{\honortitlestyle}[1]{{\fontsize{10pt}{1em}\KAI\itshape\color{graytext} #1}} \newcommand*{\honorpositionstyle}[1]{{\fontsize{10pt}{1em}\HEI\bfseries\color{darktext} #1}} \newcommand*{\honordatestyle}[1]{{\fontsize{10pt}{1em}\KAI\color{graytext} #1}} \newcommand*{\honorlocationstyle}[1]{{\fontsize{10pt}{1em}\KAI\upshape\color{darktext} #1}} % For elements of skill \newcommand*{\skilltypestyle}[1]{{\fontsize{10pt}{1em}\bfseries\color{darktext} #1}} \newcommand*{\skillsetstyle}[1]{{\fontsize{10pt}{1em}\color{text} #1}} % Define an entry of cv Education % Usage: \cveducation{}{<location>} \newcommand*{\cveducation}[2]{% \vspace{-2.0mm} % \setlength\tabcolsep{0pt} % \setlength{\extrarowheight}{0pt} \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lr} \entrytitlestyle{#1} & \entrylocationstyle{#2} \\ \end{tabular*}% } \newcommand*{\cvsubeducation}[2]{% \vspace{-2.0mm} % \setlength\tabcolsep{0pt} % \setlength{\extrarowheight}{0pt} \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lr} \subentrytitlestyle{#1} & \subentrydatestyle{#2} \\ \end{tabular*}% } % Define an entry of cv experience % Usage: \cvexperience{<title>}{<date>}{<description>} \newcommand*{\cvexperience}[2]{% \vspace{-2.0mm} % \setlength\tabcolsep{0pt} % \setlength{\extrarowheight}{0pt} \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lr} \entrytitlestyle{#1} & \subentrydatestyle{#2} \\ \end{tabular*}% } % Define an environment for cvhonor \newenvironment{cvhonors}{% \begin{center} % \setlength\tabcolsep{0pt} % \setlength{\extrarowheight}{0pt} \begin{tabular*}{\textwidth}{cl@{\extracolsep{\fill}}r} }{% \end{tabular*} \end{center} } % Define a line of cv information(honor, award or something else) % Usage: \cvhonor{<position>}{<title>}{<location>}{<date>} \newcommand*{\cvhonor}[4]{% \vspace{1.0mm} \honordatestyle{#4} & \honorpositionstyle{#1}, \honortitlestyle{#2} & \honorlocationstyle{#3} \\ } % Define an environment for cvskill \newenvironment{cvskills}{% \begin{center} % \setlength\tabcolsep{1ex} % \setlength{\extrarowheight}{0pt} \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}rl} }{% \end{tabular*} \end{center} } % Define a line of cv information(skill) % Usage: \cvskill{<type>}{<skillset>} \newcommand*{\cvskill}[2]{% \skilltypestyle{#1} & \skillsetstyle{#2} \\ } % Define an environment for cventry \newenvironment{cventries}{% \begin{center} }{% \end{center} } \newcommand*{\cvpapers}[1]{% \vspace{-3.0mm} \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lr} \multicolumn{2}{L{\textwidth}}{\descriptionstyle{#1}} \end{tabular*}% } % Define an environment for cvitems(for cventry) \newenvironment{cvitems}{% \vspace{-3.0mm} \begin{justify} \begin{itemize}[leftmargin=2ex,topsep=1ex,itemsep=0.5ex] \begin{normalsize} % \setlength{\topsep}{2pt} \renewcommand{\labelitemi}{\bullet} \end{normalsize} }{% \end{itemize} \end{justify} \vspace{-4.0mm} } % \newcommand*{\cvfunding}[1]{% % \vspace{2.5mm} % \setlength\tabcolsep{0pt} % \setlength{\extrarowheight}{0pt} % \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}} % \entrytitlestyle{#1} & \\ % % \multicolumn{2}{L{\textwidth}}{\descriptionstyle{#2}} % \end{tabular*}% % } % \newcommand*{\cvsubfunding}[2]{% % \vspace{-3.0mm} % \setlength\tabcolsep{0pt} % \setlength{\extrarowheight}{0pt} % \begin{tabular*}{\textwidth - 5.5ex}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm - 1em} R{4.5cm}} % \descriptionstyle{#1} & \descriptionstyle{#2} % \end{tabular*}% % } \mode<all> ================================================ FILE: _ThesisBeamer/body/cnn.tex ================================================ \section{cnn} \begin{frame}{Conv-SDNN预测模型——引言} 基于卷积结构的SDNN预测模型:随机映射CNN模型 \begin{itemize} \item 随机映射CNN在图像生成任务(纹理生成、风格迁移)上具有不亚于梯度下降训练CNN的表现 \end{itemize} \vspace*{-0.5em} \begin{figure} \centering \includegraphics[width=0.9\linewidth]{float/ch.cnn/ranVGG.png} \end{figure} \end{frame} \begin{frame}{Conv-SDNN预测模型——引言} 随机映射CNN模型研究: \begin{itemize} \item 一维随机映射CNN在一些人工时间序列预测数据集上展现出比MLP模型更好的拟合性能(Yu et al. 2019) \end{itemize} \vspace*{-0.5em} \begin{figure} \centering \includegraphics[width=0.9\linewidth]{float/ch.cnn/yu.png} \end{figure} \end{frame} \begin{frame}{Conv-SDNN预测模型——引言} 随机映射CNN模型研究归纳: \begin{itemize} \item 既有研究较少,已有随机映射CNN模型性能有限,亟待新的随机映射CNN预测模型及其构造技术 \end{itemize} \vspace*{0.5em} 本章贡献: \begin{itemize} \item 基于误差反馈随机映射的随机映射CNN预测模型构造方法 \begin{itemize} \item 通过递归生成随机映射卷积核的方式提高了模型构造效率 \item 借助基于误差反馈策略保证了所构造模型的理论收敛性 \end{itemize} \item 引入贪心算法解决模型构造中随机映射卷积核的选择问题 \begin{itemize} \item 自适应的在单卷积层内具备不同卷积宽度的卷积核 \end{itemize} \item 与梯度下降深度学习模型和传统随机映射模型相比,ESM-CNN具有优秀的预测性能与建模效率 \end{itemize} \end{frame} \begin{frame}{Conv-SDNN预测模型——CNN预测模型} \begin{figure}[!t] % \newlength{\twosubht} % \newsavebox{\twosubbox} \centering % \begin{minipage}{0.8\textwidth} % \includegraphics[width = \textwidth]{float/ch.eto/esc.png} % \caption*{回声状态卷积(ESC)结构} % \end{minipage} \begin{minipage}{0.8\textwidth} \includegraphics[width = \textwidth]{float/ch.cnn/esm-cnn.png} \caption*{CNN结构} \end{minipage} % \caption{\label{fig:archMix} 基于循环神经网络与卷积神经网络的混合神经网络结构示例.} \end{figure} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——误差反馈随机映射构造方法} \begin{itemize} \item 过在单卷积层内递归增长添加固定随机初始化权重卷积核的方式构造CNN隐藏结构 \item 利用误差反馈闭式计算新增卷积核所对应的输出权重参数 \end{itemize} 对于一个已具有$C$个卷积核的单卷积层ESM-CNN \begin{equation*} f_C= \sum^C_{j=1}\sum^{T-K+2}_{i=0} \beta_j^i p_j^i \end{equation*} 当前预测误差为: \begin{equation*} e_C = y - f_C = [e_C^1,\ldots, e_C^H]. \end{equation*} 新增卷积核所对应的全连接输出层权重将基于当前模型的预测误差$e_C$反馈,通过OLM加以求解: \vspace{-1.5em} \begin{equation*} \left[\beta_{{C+1}}^0, \ldots, \beta_{{C+1}}^{T-K+2} \right]=\argmin _{\beta}\|e_C -\sum_{i=0}^{T-K+2} \beta_{C+1}^i p_{C+1}^i \|. \end{equation*} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——拟合收敛性} 定义ESM-CNN的预测误差中间项为:$\tilde{e}_{C+1}^{\, 0}, \ldots, \tilde{e}_{C+1}^{\, T-K+2} $,新增卷积核所对应的全连接输出层权重中间项为:$\tilde{\beta}_{C+1}^{\, 0}, \ldots, \tilde{\beta}_{C+1}^{\, T-K+2}$,中间项之间的计算关系为: \begin{alignat*}{2} & \tilde{e}_{C+1}^{\, i+1} & = & \mspace{18mu} \tilde{e}_{C+1}^{\, i}-\tilde{\beta}_{C+1}^{\, i+1} p_{C+1}^{i+1}, \quad i = 0,\ldots,T-K+1, \\ \shortintertext{其中,} & \tilde{\beta}_{C+1}^{\, i+1} & = & \mspace{18mu} [\tilde{\beta}_{C+1}^{\, i+1,1}, \ldots,\tilde{\beta}_{C+1}^{\, i+1,h},\ldots, \tilde{\beta}_{C+1}^{\, i+1,H}], \\ & \tilde{\beta}_{C+1}^{\, i+1,h} & = & \mspace{18mu} \left\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1}\right\rangle /\left\|p_{C+1}^{\, i+1}\right\|^{2} , \quad h= 1, \ldots, H . \end{alignat*} 可证: \vspace{-1em} \begin{align*} & \|\tilde{e}_{C+1}^{\, i+1}\|^2-\|\tilde{e}_{C+1}^{\, i}\|^2 \\ ={} & \sum_{h=1}^{H} \left( \langle \tilde{e}_{C+1}^{\, i,h}-\tilde{\beta}_{C+1}^{\, i+1,h} p_{C+1}^{i+1} , \tilde{e}_{C+1}^{\, i,h}-\tilde{\beta}_{C+1}^{\, i+1,h} p_{C+1}^{i+1} \rangle - \langle \tilde{e}_{C+1}^{\, i,h}, \tilde{e}_{C+1}^{\, i,h} \rangle \right) \\ ={} & \sum_{h=1}^{H} \left( - {\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1} \rangle}^2 / \left\|p_{C+1}^{\, i+1}\right\|^{2} \right) \leq 0 \end{align*} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——拟合收敛性} 该性质在$\left\|\tilde{e}_{C+1}^{\, 0}\right\|^{2}$与$\left\|e_{C}\right\|^{2}$间仍然保持, 因此,ESM-CNN的预测误差收敛性如下: $$ \|e_{C+1}\|^2 \; \leq \|\tilde{e}_{C+1}^{\, T-K+2}\|^2 \; \leq \|\tilde{e}_{C+1}^{\,0}\|^2 \; \leq \|{e}_{C}\|^2 . $$ 方法优势: \begin{itemize} \item 迭代局部更新输出层权重的方式具有更小的计算开销,这种低开销优势会随隐藏层结构的增大同时扩大 \item 随着卷积层中递归新增卷积核的不断加入,链接至输出层的池化特征图向量维度会同时倍数增大,与预测目标维度相比过大的特征维度会导致闭式求解算法的病态问题(Ill-posed problem) \item 基于误差反馈递归更新输出权重构造的预测模型能在神经网络隐藏构造的过程中不断弥补上步预测误差,同时,这种历史输出权重保持固定的方式在一定程度上承担了正则化的作用,从而增强了所构造模型的性能稳定性 \end{itemize} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——卷积核选择方法} 针对ESM-CNN预测模型构造中的卷积核选择问题,本章节提出了一种基于贪心算法的卷积核选择方法,使得ESM-CNN具有在单卷积层中同时具备不同宽度的卷积核结构,以此增强模型对于不同尺度时间序列特征的学习建模能力。 本节提出了一种卷积核评分$\Delta_{{C+1, s}}$,计算如下: \begin{align*} \Delta_{{C+1},s} & = \| e_{C+1,s} \|^2 - \| e_{C} \|^2 \notag \\ {} & = \|\ e_C -\sum_{i=0}^{T-K^{\prime}+2} \beta_{C+1, s}^i p_{C+1, s}^i \|^2 - \| e_{C} \|^2 \label{eq:filterScore} \end{align*} 基于所提的卷积核评分,实现最好预测效果提升的备选卷积核$p_{C+1}^{*}$将被选出作为新增卷积核正式加入当前神经网络结构,该过程可被表述为: \begin{equation*}\label{eq:scselection} p_{C+1}^{*} = \argmax\limits_{p_{{C+1},s}} \{ \Delta_{{C+1},s}, s = 1,\ldots,S \}. \end{equation*} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——实验设计} \input{float/ch.cnn/data.tex} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——实验设计} \begin{figure} \begin{minipage}[t]{0.5\textwidth} 对比模型: \begin{itemize} \item 统计预测模型 \begin{itemize} \item Naive、ARIMA、Holt’s Winters \end{itemize} \item 随机映射模型 \begin{itemize} \item RVFL、IELM、SCN \end{itemize} \item 深度学习模型 \begin{itemize} \item GS-CNN、DeepAR、CLSTM \end{itemize} \item 消融实验模型 \begin{itemize} \item 移除卷积核选择 \\ \(\rightarrow\) ES-CNN \item 移除误差反馈与卷积核选择 \\ \(\rightarrow\) Stoc-CNN \end{itemize} \end{itemize} \end{minipage} \hfill \begin{minipage}[t]{0.45\textwidth} 评价指标: \begin{itemize} \item 百分比误差 \begin{itemize} \item MAPE、SMAPE \end{itemize} \item 绝对值误差 \begin{itemize} \item RMSE \end{itemize} \end{itemize} \begin{equation*} MAPE = \frac1N \sideset{}{_{i=1}^N} \sum \abs{\frac{y_{i} - \hat y_{i}}{y_i}}. \end{equation*} \begin{equation*} SMAPE = \frac1N \sideset{}{_{i=1}^N} \sum \abs{\frac{y_{i} - \hat y_{i}}{y_i + \hat y_{i}}}. \end{equation*} \begin{equation*} RMSE = \sqrt{\frac1N \sideset{}{_{i=1}^N} \sum ({y_{i} - \hat y_{i}})^2 }. \end{equation*} \end{minipage} \end{figure} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——实验步骤} \begin{itemize} \item 数据集预处理:基于Z-score方法\footnote{https://scikit-learn.org/stable/modules/preprocessing.html\#preprocessing-scaler.}归一化至标准正太分布 \item 数据集切分:按照0.64,0.16和0.2的比例切分为训练集、验证集和测试集 \item 测试集评价:预测生成结果均先被还原至原有数值范围,再进行预测准确度计算 \end{itemize} 均对每一预测模型建模20次,对20次预测建模结果结合MAPE、SMAPE和RMSE指标计算预测准确度平均值,以综合表现预测模型预测准确性与稳定性 本章节所有实验均基于CUDA 10.1版本的GPU加速Pytorch框架、Ubuntu 20.04系统环境、Intel 8700K CPU和Nvidia GTX 1070 GPU环境进行,以保证计算环境的一致性 本章节的实验设置与算法代码已开源在Github平台\footnote{https://github.com/XinzeZhang/TimeSeriesForecasting-torch} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——实验结果} \input{float/ch.cnn/mape.tex} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——预测准确度分析} \begin{enumerate} \item[1)] 作为随机映射神经网络,ESM-CNN在本章节选取的人工合成时间序列数据集与真实时间序列数据集上都保持了优秀的预测准确度,展现出ESM-CNN预测模型的良好应用性。 \item[2)] 与Naive、ARIMA和Holt所代表的统计模型相比,ESM-CNN在本章节设置的所有预测任务和所有评价指标上都表现出更优的预测准确度,展现出ESM-CNN预测模型的良好预测性能。 \item[3)] 与GS-CNN、DeepAR和CLSTM所代表的梯度下降训练深度学习预测模型相比,ESM-CNN在本章节设置的绝大部分预测任务和评价指标上取得了更优的预测准确度;在梯度下降训练模型取得最优结果的预测任务中,ESM-CNN预测模型也取得了差距很小的次优预测结果,展示出ESM-CNN预测模型与梯度下降训练深度学习预测模型匹敌的预测能力。 \item[4)] 与RVFL、IELM和SCN所代表的随机映射MLP预测模型相比,ESM-CNN同样在本章节设置的所有预测任务和所有评价指标上都表现出更优的预测准确度,展示出ESM-CNN预测模型在随机映射预测模型中的预测优势。 \end{enumerate} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——消融实验分析} \begin{enumerate} \item[1)] 仅单纯引入随机映射方法的Stoc-CNN预测模型在本章节选取的所有预测任务和所有评价指标上都表现出显著弱于ES-CNN与ESM-CNN的预测性能,并在多项预测任务中表现出最差的预测准确度,验证了病态问题在全局更新输出权重方式下所导致的预测性能问题。 \item[2)] 引入误差反馈随机映射构造策略的ES-CNN预测模型与Stoc-CNN相比,取得了显著的准确度提升,并在大部分预测任务和评价指标中表现出次优的水平,展现出基于误差反馈随机映射策略构造CNN预测模型的有效性与必要性。 \item[3)] 与ES-CNN和Stoc-CNN预测模型相比,ESM-CNN在本章节设置的所有预测任务和所有评价指标上都表现出更优的预测准确度,证明了所提卷积核选择方法在ESM-CNN预测模型构造过程中的有效性与必要性。 \end{enumerate} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——收敛性分析} \begin{figure}[!t] \centering \begin{minipage}[b]{0.32\textwidth} \includegraphics[width = 0.95\textwidth]{float/ch.cnn/sili_H1_revise.png} \subcaption{ ILI, $H = 1$ } \end{minipage} \begin{minipage}[b]{0.32\textwidth} \includegraphics[width = 0.95\textwidth]{float/ch.cnn/sili_H4_revise.png} \subcaption{ ILI, $H = 4$ } \end{minipage} \begin{minipage}[b]{0.32\textwidth} \includegraphics[width = 0.95\textwidth]{float/ch.cnn/sili_H8_revise.png} \subcaption{ ILI, $H = 8$ } \end{minipage} \caption*{ILI数据集上递归增长随机映射神经网络的RMSE曲线} \end{figure} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——收敛性分析} \begin{enumerate} \item[1)] 同一预测模型在不同预测时长任务上的收敛情况是一致的。 \item[2)] 尽管SCN模型在不同预测任务的训练集RMSE上都能做出最快收敛,但SCN模型在进行真实预测建模中出现了明显的过拟合现象,而采用误差反馈策略的IELM模型并没有出现过拟合,但表现出最慢的收敛速度。这一对比结果证明了误差反馈策略解决过拟合问题的有效性,同时也指出了误差反馈策略下MLP结构的性能局限性。 \item[3)] 基于卷积结构的ESM-CNN和ES-CNN在所有的验证集RMSE中都表现出比IELM和SCN更快且更低的收敛效果,证明了基于误差反馈随机映射构造CNN预测模型的收敛性与鲁棒性。 \item[4)] 与ES-CNN相比,ESM-CNN具备更低的训练集RMSE曲线和测试集RMSE曲线,从收敛性角度再次验证了所提卷积核选择方法的有效性与必要性。 \item[5)] 在ESM-CNN与ES-CNN的收敛过程中,预测性能的最大增益明显来自于构造过程的前10步,表现出ESM-CNN具备通过牺牲微小性能换来巨大效率提升的平衡策略,从而使得ESM-CNN具有更加广泛和高效的现实应用性。 \end{enumerate} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——建模效率分析} \input{float/ch.cnn/time.tex} \end{frame} \begin{frame} \frametitle{Conv-SDNN预测模型——小结} \textbf{(1)基于卷积结构的SDNN预测模型构造与优化方法} \begin{itemize} \item 通过代数推导证明了基于该方法所构造的预测模型具有随着卷积核的增加而单调下降的预测误差,以此保证了所提方法的收敛性,且其确定的输出权重与既有方法相比具有更小的$L_2$范数,以此提升了模型的预测稳定性; \item 区别于既有方法仅能用相同宽度的卷积核构造单卷积层,通过贪心选择由不同卷积核宽度组成的备选集,使得模型能够在迭代构造模型的过程中自适应确定卷积参数,其构造的单卷积层具备不同宽度的卷积核,使模型借助单卷积层具备不同尺度局部特征的学习能力; \item 在人工合成数据、流感阳率数据、原油价格数据和金融指数数据上的实验表明,与梯度下降训练的深度神经网络预测模型相比,基于本方法所构造的模型在具备相近甚至更优的预测准确度同时具备极高的建模效率,验证了所提方法的有效性。 \end{itemize} \end{frame} ================================================ FILE: _ThesisBeamer/body/code.tex ================================================ \section{code} \begin{frame} \frametitle{预测建模框架——OpenForecasting} \begin{figure} \begin{minipage}[t]{0.58\textwidth} OpenForecasting: \begin{itemize} \item 整合既有优秀神经网络建模框架与参数优化框架,提供预测建模通用框架平台 \item 完备包含时间序列预测建模的数据初始化、数据预处理、模型构造、模型优化和模型评价等构造与评价流程,集成多类别、多结构的现有对比预测方法 \end{itemize} \vspace{1em} 已开源: https://github.com/Analytics-for-Forecasting/ OpenForecasting. \end{minipage} \hfill \begin{minipage}[t]{0.4\textwidth} 框架需求: \begin{itemize} \item 数据管理功能: \begin{itemize} \item 异构数据结构化方法 \item 输入数据预处理方法 \item 输出数据评价方法 \end{itemize} \end{itemize} \begin{itemize} \item 模型构造功能: \begin{itemize} \item 单元化、模块化、标准化 \item 多类别、多结构 \end{itemize} \end{itemize} \begin{itemize} \item 模型优化功能: \begin{itemize} \item 多种超参数优化方法 \item 多种权重参数优化方法 \end{itemize} \end{itemize} \end{minipage} \end{figure} \end{frame} \begin{frame} \frametitle{预测建模框架——OpenForecasting} \centering \includegraphics[width = 0.83\linewidth]{float/ch.univ/code2.png} \end{frame} ================================================ FILE: _ThesisBeamer/body/intro.tex ================================================ \section{intro} \begin{frame} \frametitle{绪论 — 研究背景} \textbf{基于随机映射的时间序列深度学习预测建模技术研究} \vspace*{1em} \textbf{预测建模问题}是气象水文、公共卫生、电力系统等众多领域进行管理决策时的重要问题。 例如电力系统: \begin{figure} \begin{minipage}[b]{0.32\textwidth} 运行决策: \begin{itemize} \item 电力生产与配送计划 \item 燃料购买与存用计划 \item 电力价格定价策略 \end{itemize} \end{minipage} \hspace{1em} \begin{minipage}[b]{0.32\textwidth} 预测需求: \begin{itemize} \item 区域电力负荷 \item 火电燃煤价格 \item 风能光伏出力 \end{itemize} \end{minipage} \hfill \begin{minipage}[b]{0.3\textwidth} 影响因素: \begin{itemize} \item 经济的发展 \item 天气的变化 \item 疫情的波动 \end{itemize} \end{minipage} \end{figure} 受很多未知因素的存在影响,难以建立完备的因果关系来给出现象发生的定律,不可能建立出一个确定性的模型来精确计算现象的未来表现 \end{frame} ================================================ FILE: _ThesisBeamer/body/last.tex ================================================ \section{last} \begin{frame} \frametitle{总结与展望} % 主要工作: % \begin{itemize} % \item 特定结构构造与优化方法研究 % \begin{itemize} % \item 基于卷积结构的SDNN预测模型构造与优化方法 % \item 基于循环结构的SDNN预测模型构造与优化方法 % \end{itemize} % \item 一般结构优化方法研究 % \begin{itemize} % \item SDNN预测模型的二重特征结构选择方法 % \end{itemize} % \item 混合结构优化方法研究 % \begin{itemize} % \item SDNN预测模型的混合结构生长与优化方法 % \end{itemize} % \end{itemize} \begin{figure}[!t] \begin{minipage}{0.45\textwidth} \centering \includegraphics[width=0.825\linewidth]{float/ch.intro/thesis_arch.png} \caption*{本研究技术路线} \end{minipage} \hfill \begin{minipage}{0.45\textwidth} \centering \includegraphics[width=0.9\linewidth]{float/ch.intro/thesis_content.png} \caption*{本论文主要结构} \end{minipage} \end{figure} \end{frame} \begin{frame} \frametitle{研究展望} 卷积结构的SDNN预测模型构造与优化方法: \begin{itemize} \item 可以通过计算不同方法的时间复杂度与空间复杂度,从而精确比较各方法的建模效率优劣 \item 基于历史数据训练和构造的模型不一定适应于时变的时间序列数据,因此可以通过考虑剪枝策略,设计模型结构对时变时间序列数据的自适应方法 \end{itemize} 循环结构的SDNN预测模型构造与优化方法研究 \begin{itemize} \item 未有考虑状态遮掩机制对于不同随机循环隐藏结构的影响,因此可以进行状态遮掩输出结构在其他随机循环隐藏结构(如GESN或DESN结构)上的迁移实验 \item 在梯度下降的RNN预测模型训练中同样存在类似的问题,因此可以通过设计基于状态遮掩的新颖梯度下降损失函数,提升RNN预测模型的预测效果。 \end{itemize} \end{frame} \begin{frame} \frametitle{研究展望} SDNN预测模型的二重特征结构选择方法研究: \begin{itemize} \item 二维的时间序列输入特征结构同样适用于梯度下降训练的CNN与RNN模型,因此可以考虑进行二重特征结构选择方法在训练的深度神经网络模型上的迁移实验 \item 可以考虑联立循环结构SDNN预测模型的输入特征时步掩码和隐藏特征时步掩码,构建多阶段整体优化的循环结构SDNN预测模型,进一步提升其预测效果 \end{itemize} SDNN预测模型的混合结构生长与优化方法研究 \begin{itemize} \item 限定于SDNN预测模型的输入与隐藏结构,未有考虑输出结构的生长与优化问题,因此可以构造混合多种不同输出结构的自适应端到端预测模型 \item 随机映射方法下的误差反馈生长策略并不适用于梯度下降方法,因此可以设计基于误差反馈的子网络新颖权重训练方法,构造具有收敛保证的混合结构DNN预测模型 \end{itemize} \end{frame} \begin{frame} \frametitle{总结与展望} 围绕上述不足之处与改进方法,未来的研究工作将持续探索时间序列预测建模技术的更多可能与思路。 希望借助随机映射方法,通过进一步的学习与交流,完善深度学习预测模型的解释性研究,探寻预测模型与其优化方法在构造选择效率与预测性能提升间的更佳平衡,使其在更为广泛的应用领域发挥可信且有效的支撑作用。 \vspace*{1em} \(\circ\)衷心感谢博士生导师鲍玉昆教授、计算机科技与技术学院的何琨教授、硕士研究生导师蔡淑琴教授对我的指导。 \(\circ\)感谢预答辩委员会的胡斌教授、王林教授、杨彦武教授和吴庆华教授。 \(\circ\)感谢我的爱人、父母、朋友、师弟师妹,以及所有的支持者! \end{frame} ================================================ FILE: _ThesisBeamer/body/related.tex ================================================ \section{overview} \begin{frame} \frametitle{时间序列预测定义} 尽管有诸多因素干扰,依然有可能基于对现实现象的历史观测推导出一个模型,用来计算一定提前期的未来值。 时间序列预测正是通过对时间序列观测值之间相互依赖性的分析,发展出动态模型,进而对时间序列的未来状态进行预测。 \vspace*{1em} \textbf{时间序列预测的过程本质上是一个以历史时间序列为自变量,以未来时间序列为因变量的函数逼近过程。} 即,给定一个历史T步的时间序列$\bm{x} = (x_1, \ldots, x_T)$,\(\x \in \mathr^{T}\),以及未来提前H步的时间序列$\bm{y} = (x_{T+1},\ldots,x_{T+H})$, \(\y \in \mathr^{H}\),时间序列预测问题可被公式化定义为: \begin{equation*} \mathcal{F} : f(\bm x) + \bm e = \bm y, \label{eq:sec.intro.def} \end{equation*} $\mathcal{F}$是指时间序列预测模型所逼近的函数。\(f\)是指时间序列预测模型所学习出的预测函数。 \end{frame} \begin{frame} \frametitle{传统时间序列预测建模技术} 以统计学为基础的回归预测模型,通过构造历史观测值与相关因素的经验方程,对时间序列进行拟合和预测。 \begin{itemize} \item 自回归(Auto-regressive,AR)模型 \item 移动平均(Moving average,MA)模型 \item 自回归移动平均混合(Auto-regressive moving average,ARMA)模型 \item 整合移动平均自回归(Auto-regressive integrated moving average,ARIMA)模型 \item 指数平滑(Exponential smoothing,ES)模型 \end{itemize} 归纳: \begin{itemize} \item 将时间序列数据的输入输出映射视为预定义的函数 \item 仅适用于某一特定类型的平稳过程或非平稳过程 \item 不能有效处理复杂非线性非平稳的时间序列预测问题 \end{itemize} \end{frame} \begin{frame} \frametitle{机器学习预测建模技术} 将预测问题考虑为一种以历史T步的时间序列$\bm{x} = (x_1, \ldots, x_T)$为输入,以未来提前H步的时间序列$\bm{y} = (x_{T+1},\ldots,x_{T+H})$为输出的回归问题,构造监督机制下的回归模型予以求解。 \begin{equation*} f(\bm x) + \bm e = \bm y, \quad f \in \{\vartheta, \theta\}\label{eq:sec.intro.ml}. \end{equation*} \(\theta\)表示机器学习预测模型的权重参数集合,\(\vartheta\)表示定义机器学习预测模型 与权重学习机制的超参数集合。 \begin{itemize} \item \(\vartheta\)定义了机器学习预测模型的结构与权重参数的训练机制 \item \(\theta\)表示机器学习模型中从输入变换到输出间的权重参数集合 \item \(f \in \{\vartheta, \theta\}\) \end{itemize} \vspace{1em} \centering 如何选择合适的\(\vartheta\)与\(\theta\)从而建立一个精准的预测模型\(f\) \end{frame} \begin{frame} \frametitle{ML代表模型} \begin{figure} \begin{minipage}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{float/ch.intro/svm.png} \caption*{支持向量机(SVM)结构示例\label{fig:ch.intro.svm}} \end{minipage} \hfill \begin{minipage}[b]{0.45\textwidth} \centering \includegraphics[width=\textwidth]{float/ch.intro/mlp.png} \caption*{多层感知机(MLP)结构示例\label{fig:ch.intro.mlp}} \end{minipage} \end{figure} 以一组给定包含\(N\)个样本的时间序列数据集\(\mathbb{D} = \left\{\left(\x_{n}, \y_{n}\right) \in\left(\mathbb{R}^{T} \times \mathbb{R}^{H}\right)\right\}_{n=1}^{N}\)为例,对基于SVM与NN的预测建模技术与应用展开概述。 \end{frame} \begin{frame} \frametitle{梯度下降} 常有学者将基于梯度下降方法的神经网络模型称为反向传播神经网络(Back propagation neural network,BPNN)模型。 \begin{itemize} \item 梯度下降:梯度下降训练方法中各层权重参数的优化方法 \item 反向传播:梯度下降训练方法中计算各层权重参数梯度时所使用的链式法则梯度传导过程 \end{itemize} 以MLP为例: \begin{align*} \ell(\w) &= \frac{1}{N \times H} \sum^N_{n=1} \|\e_{n}\| ,\label{eq:ch.intro.mse}\\ \e_{n} & = \y_n - f(\x_n). \end{align*} \centering \(\ell(\w)\)为神经网络预测模型在训练集\(\mathd\)上的MSE损失 \end{frame} \begin{frame} \frametitle{梯度下降} 核心思想: \begin{itemize} \item 基于神经网络模型中激活函数的连续性与可微性 \item 向\(\w\)添加一个很小的动量\(\Delta_{\w}\),即\(\norm{\Delta_{\w}}\)很小,亦等价于\(\w + \Delta_{\w}\)近似\(\w\) \item 利用泰勒近似将复杂非凸的\(\ell(\w)\)函数优化问题当作一个简单的函数极小值问题 \end{itemize} \begin{equation*} \ell({\w + \Delta_{\w}} ) \approx \ell({\w}) + \nabla_{\w}^{\mathrm{T}}\Delta_{\w}. \end{equation*} \(\nabla_{\w}\)表示\(\w\)在误差函数\(\w\)中的梯度。在最陡下降中,定义学习速率(Learning rate)为\(\eta \),且\(\eta > 0\),因此: \begin{equation*} \Delta_{\w} = -\eta \nabla_{\w}. \label{eq:ch.intro.gd2} \end{equation*} 当\(\eta \)足够小,可证: \begin{equation*} \ell({\w -\eta \nabla_{\w}} ) \approx \ell({\w}) -\eta \nabla_{\w}^\trans \nabla_{\w} < \ell({\w}). \label{eq:ch.intro.lr} \end{equation*} \end{frame} \begin{frame} \frametitle{梯度下降的范式} \begin{algorithm}[H] \caption{神经网络模型梯度下降方法训练过程} % \renewcommand{\algorithmcfname}{算法} % \renewcommand{\algorithmicrequire}{\textbf{输入:}} % \renewcommand{\algorithmicensure}{\textbf{输出:}} \label{alg:ch.intro.gd} \begin{algorithmic}[1] \WHILE{未满足\(\vartheta\)界定的收敛条件} \STATE \(i\leftarrow i+1\) \STATE 基于\(\theta^i\),确定模型\(f \leftarrow f \in \{\vartheta, \theta^i\}\) \STATE 基于数据集\(\mathd\)和模型\(f\),完成前馈过程\(f(\x)\),计算模型损失函数值\(\ell({\w}) \) \FOR{\(\w\) in \(\theta^i\) } \STATE 选取计算梯度所需的样本 \STATE 根据反向传播链式法则计算梯度信息\(\nabla_{\w}\) \STATE 根据梯度下降更新公式更新权重参数\(\w\) \ENDFOR \ENDWHILE \RETURN { 已完成更新过程的权重参数集合\(\theta \leftarrow \theta^i\) } \end{algorithmic} \end{algorithm} \end{frame} \begin{frame} \frametitle{深度学习建模方法} 深度学习建模技术是机器学习建模技术中一类基于深度神经网络的建模方法。 \begin{itemize} \item 海量数据的积累:CIFAR10,CIFAR100,ImageNet,WMT \item 计算能力的提升:GPU加速,分布式计算,并行计算 \item 梯度下降的改进:SGD,Moment,Adam \item 通用框架的提出:TensorFlow,Pytorch \end{itemize} \begin{figure} \begin{minipage}[t]{0.55\textwidth} \begin{itemize} \item { 传统机器学习:人工经验建立特定的特征提取方法\begin{itemize} \item 基于图像像素数值高斯分布描述图像特征的Fisher Vector方法 \item 基于语言文档内词频信息描述语句特征的词频-逆文档(TF-IDF)方法 \end{itemize} } \end{itemize} \end{minipage} \hfill \begin{minipage}[t]{0.44\textwidth} \begin{itemize} \item { 深度学习:依靠神经网络结构学习数据的抽象特征表示\begin{itemize} \item CNN中的卷积结构 \item RNN中的循环结构 \end{itemize} } \end{itemize} \end{minipage} \end{figure} \end{frame} \begin{frame} \frametitle{深度学习示例} \begin{figure}[t!] \centering \includegraphics[width = \linewidth]{float/ch.intro/lecun.png} \caption*{卷积神经网络图像分类模型示例(引用于Lecun et al. “Deep Learning.” Nature, 2015, 521.7553: 436-444)} \end{figure} \end{frame} \begin{frame} \frametitle{模型选择问题} 对于由超参数\(\vartheta\)和权重参数\(\theta\)所定义的深度学习预测模型\(f\),其模型选择问题便是如何选择合适的\(\vartheta\)与\(\theta\)从而提升模型\(f\)预测性能的问题。 \begin{itemize} \item 权重参数\(\theta\)的优化研究 \(\rightarrow\) 梯度下降方法的改进 \item 超参数\(\vartheta\)的优化研究 \(\rightarrow\) 神经网络结构的优化 \end{itemize} \vspace{0.5em} 神经网络结构的分解: \begin{itemize} \item 表征结构 \begin{itemize} \item 隐藏结构 \(\rightarrow\) 神经网络结构搜索 (NAS) \begin{itemize} \item 启发式优化、强化学习 \(\rightarrow\) 计算开销大,选择耗时长 \end{itemize} \item 输入结构 \(\rightarrow\) 预测领域的多输入特征选择 \begin{itemize} \item 封装法更优 \(\rightarrow\) 多时步维度的输入特征结构 \end{itemize} \end{itemize} \item 输出结构 \(\rightarrow\) 预测领域的多输出策略优化 \begin{itemize} \item MIMO策略,Direct策略,Iterative策略 \begin{itemize} \item MIMO更优 \(\rightarrow\) MIMO策略下依然存在多种输出结构 \end{itemize} \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{模型选择研究} \(\theta\)依赖于超参数\(\vartheta\): \begin{itemize} \item 模型神经网络结构参数(如CNN模型中卷积层层数、卷积核宽度和卷积核数量等等) \item 梯度下降方法参数(如SGD方法中的学习速率、批次样本选取数量和动量惯性系数等等) \end{itemize} \begin{center} 不同的\(\vartheta\)必然会导致\(\theta\)的差异 \end{center} \end{frame} \begin{frame} \frametitle{模型选择过程} \begin{algorithm}[H] \caption{基于梯度下降方法的神经网络预测建模技术模型选择过程} \begin{algorithmic}[1] \WHILE{未满足模型选择方法界定的收敛条件} \STATE \(j\leftarrow j+1\) \STATE 从超参数集合\(\vartheta\)的搜索空间\(\Omega\)中选择或更新出当前的超参数集合\(\vartheta^j\) \STATE 基于\(\vartheta^j\):\\ \hspace{2em}执行梯度下降算法所示步骤\\ \hspace{2em}得到当前\(\vartheta^j\)试验下的权重参数集合\(\theta|\vartheta^j\)\\ \hspace{2em}确定模型\(f \leftarrow f \in \{\vartheta^j, \theta|\vartheta^j\}\) \STATE 基于数据集\(\mathd\)和模型\(f\),计算模型误差 \STATE 基于模型误差与超参数更新方法:\\ \hspace{2em}更新最优的神经网络超参数集合\(\vartheta^*\)\\ \hspace{2em}更新最优的神经网络超参数集合\(\theta^* \leftarrow \theta|\vartheta^*\) \ENDWHILE \RETURN { 已完成更新过程的超参数集合\(\vartheta \leftarrow \vartheta^*\)与权重参数集合\(\theta \leftarrow \theta^*\) } \end{algorithmic} \end{algorithm} \end{frame} \begin{frame}{模型选择挑战} \begin{figure} \begin{minipage}[b]{0.45\textwidth} 深度学习预测建模技术所面临的模型选择挑战尤为突出。 \vspace{2em} \begin{itemize} \item 更多的权重参数以及更加复杂的梯度计算方式,导致模型选择效率低 \item 复杂的神经网络结构加深了超参数搜索空间的复杂程度,导致模型选择效果弱 \end{itemize} \end{minipage} \quad \begin{minipage}[b]{0.45\textwidth} \includegraphics[width=\textwidth]{float/ch.intro/circle.png} \end{minipage} \end{figure} \end{frame} \begin{frame} \frametitle{随机映射方法研究概况} 随机映射是一种采用非迭代学习机制的MLP建模方法。 \begin{figure}[H] \begin{subfigure}[b]{0.25\textwidth} \includegraphics[height=\linewidth]{float/ch.cnn/layer.pdf} \caption*{} \end{subfigure} \hspace*{-0.15\textwidth} \begin{subfigure}[b]{0.25\textwidth} \includegraphics[height=\linewidth]{float/ch.cnn/schmidt.pdf} \caption{Schimidt网络} \end{subfigure} \hspace*{0.03\textwidth} \begin{subfigure}[b]{0.25\textwidth} \includegraphics[height=\linewidth]{float/ch.cnn/rvfl.pdf} \caption{RVFL网络} \end{subfigure} \hspace*{\fill} \begin{subfigure}[b]{0.25\textwidth} \includegraphics[height=\linewidth]{float/ch.cnn/elm.pdf} \caption{ELM网络} \end{subfigure} \caption*{\label{fig:randomnet}蓝色线表示固定的随机初始化权重,黄色线表示闭式求解得输出权重。} \end{figure} \end{frame} \begin{frame} \frametitle{随机映射建模过程} 以MLP为例:随机映射多层感知机(Stochastic multiple percentage, SMLP)模型的预测过程为: \begin{align*} f_{smlp}(\x) &= \w_{out}\h_{smlp}, \\ \h_{smlp} &= \sigma (\w_{hid}\x). \notag \end{align*} 其模型损失函数依然保持MSE损失形式 \begin{align*} \w_{out} &= \argmin_{\w_{out}} \norm{\y - \w_{out}\h_{smlp}} \\ & = \y \h_{smlp}^{\trans} (\h_{smlp}\h_{smlp}^\trans)^{-1}. \notag \end{align*} 支持向量机模型是一种SMLP模型的特例 \end{frame} \begin{frame} \frametitle{SMLP的收敛性质} 传统的SMLP模型避免了梯度下降训练计算开销高的问题,但这种权重随机机制使其模型性能的收敛性与稳定性受到质疑。 针对于此: \begin{itemize} \item Huang等\footnote{Huang et al. "Universal approximation using incremental constructive feedforward networks with random hidden nodes." IEEE Trans. Neural Networks 17.4 (2006): 879-892.}基于递归添加神经元的方式构造了一种增长极限感知机(Incremental extreme learning machine,IELM),并证明了IELM对于任意连续有界目标函数的学习收敛能力。 \item Wang等\footnote{Wang et al. "Stochastic configuration networks: Fundamentals and algorithms." IEEE transactions on cybernetics 47.10 (2017): 3466-3479.}通过迭代增加隐藏层神经元,基于监督机制闭式挑选神经元隐藏层权重,全局更新输出层权重的方式,构造出增长的SMLP模型,并证明了SCN的普适逼近性质(Universal approximation property)。 \end{itemize} \end{frame} \begin{frame} \frametitle{随机映射深度学习建模技术} 随机映射RNN的研究: \begin{itemize} \item Jaeger等\footnote{Jaeger et al. "Harnessing nonlinearity: Predicting chaotic systems and saving energy in wireless communication." science 304.5667 (2004): 78-80.}在2001年提出随机映射RNN,称其为状态回声网络(Echo state network,ESN)。 \item 技术:Leaky ESN,Growing ESN,Deep ESN,Regularize ESN \item 应用:电力负荷预测,原油价格预测 \end{itemize} 随机映射CNN的研究: \begin{itemize} \item He等\footnote{He et al. "A powerful generative model using random weights for the deep image representation." Advances in Neural Information Processing Systems 29 (2016).}发现随机映射CNN在纹理生成和风格迁移等任务上具有不亚于梯度下降训练CNN的表现。 \item 预测研究较少 \end{itemize} \end{frame} \begin{frame} \frametitle{随机映射深度学习预测建模技术} 由此,针对时间序列深度学习预测技术模型选择挑战中的低效问题,构造基于随机映射的深度学习预测建模技术是一种有效的解决途径 \begin{itemize} \item 深度学习建模技术优异的预测潜能 \item 随机映射建模技术高效的建模效率 \end{itemize} \vspace{1em} 随机映射深度学习预测建模技术的挑战: \begin{itemize} \item 建模效率的提高建立在预测性能的牺牲上 \item 更高的模型选择要求 \end{itemize} \end{frame} \begin{frame} \frametitle{技术研究体系} \vspace{-0.5em} \centering \begin{figure}[!th] \centering \includegraphics[width=0.88\linewidth]{float/ch.intro/thesis.png} \end{figure} \end{frame} \begin{frame} \frametitle{研究意义} \textbullet ~~~ 在理论层面,本论文将深入研究不同神经网络结构下的SDNN预测模型和新的理论分析框架,如构建基于卷积结构和混合结构的SDNN预测模型的预测误差收敛性分析框架,直观理解SDNN预测模型的构造与决策逻辑 \textbullet ~~~在方法层面,本论文将构造多套预测模型构造与优化方法,包括适用于卷积结构、循环结构、一般结构至混合结构SDNN模型的优化技术,形成从特定到一般再到混合的综合技术体系与框架,为SDNN预测建模技术的复杂模型选择问题提供新颖的方法与思路 \textbullet ~~~在现实层面,本论文将立足于现实时间序列预测任务的多个场景,包括公共卫生领域中的流感阳性样本率预测任务、能源市场中的原油价格预测任务、金融市场中的股票指数预测任务、大气污染中的PM2.5预测任务、电力系统中的电力负荷与电力价格预测任务等 \end{frame} ================================================ FILE: _ThesisBeamer/float/ch.cnn/data.tex ================================================ \begin{table}[!t] \centering \caption*{数据集信息} \vspace{-1em} \begin{tabularx}{\textwidth}{lccccY} \toprule 数据集名称 & 平稳性 & 趋势性 & 季节性 & 起始截止日期 & 数据集大小 \\ \midrule AR1 & \xmark & 0.97 & 0.09 & - & 500 \\ BTC & \xmark & 0.99 & 0.66 & 05/25/2020 $\sim$ 03/20/2021 & 2181 \\ ILI & \cmark & 0.51 & 0.61 & 01/15/2010 $\sim$ 04/15/2020 & 535 \\ BRENT-weekly & \xmark & 0.97 & 0.07 & 05/15/1987 $\sim$ 04/30/2021 & 1773 \\ BRENT-daily & \xmark & 0.97 & 0.06 & 05/20/1987 $\sim$ 05/03/2021 & 8620 \\ WTI-weekly & \xmark & 0.96 & 0.08 & 01/03/1986 $\sim$ 04/30/2021 & 1844 \\ WTI-daily & \xmark & 0.96 & 0.07 & 01/02/1986 $\sim$ 05/03/2021 & 8904 \\ S\&P 500 & \xmark & 0.99 & 0.40 & 12/31/2009 $\sim$ 11/15/2017 & 1984 \\ NASDAQ & \xmark & 0.99 & 0.27 & 12/31/2009 $\sim$ 11/15/2017 & 1984 \\ DJI & \xmark & 0.99 & 0.40 & 12/31/2009 $\sim$ 11/15/2017 & 1984 \\ NYSE & \xmark & 0.98 & 0.45 & 12/31/2009 $\sim$ 11/15/2017 & 1984 \\ \bottomrule \end{tabularx} \end{table} ================================================ FILE: _ThesisBeamer/float/ch.cnn/mape.tex ================================================ \begin{table}[h] \centering \footnotesize \caption*{ESM-CNN及对照组模型的MAPE结果对比} \resizebox{\textwidth}{!}{ \begin{tabular}{cccccccccccccc} \toprule \multirow{2}{*}{数据集} & \multirow{2}{*}{H} & \multicolumn{3}{c}{统计模型} & \multicolumn{3}{c}{梯度下降模型} & \multicolumn{3}{c}{随机映射模型} & \multicolumn{2}{c}{消融模型} & 所提模型 \\ \cmidrule(l){3-5} \cmidrule(lr){6-8} \cmidrule(lr){9-11} \cmidrule(lr){12-13} \cmidrule(lr){14-14} & & Naive & ARIMA & Holt & GS-CNN & DeepAR & CLSTM & RVFL & IELM & SCN & Stoc-CNN & ES-CNN & ESM-CNN \\ \cmidrule(l){1-14} \multirow{3}{*}{{AR1}} & 1 & 2.54e-01 & 5.95e-01 & 5.94e-01 & 1.06e-01 & 1.08e-01 & 8.88e-02 & 7.61e-01 & 9.84e-02 & 6.50e-02 & 6.10e+01 & \bf{4.53e-02} & \bf{3.49e-02}\s \\\cmidrule(l){3-14} & 3 & 2.62e-01 & 6.00e-01 & 5.98e-01 & 1.23e-01 & 1.64e-01 & 1.20e-01 & 1.17e+00 & 1.07e-01 & 9.53e-02 & 6.34e+01 & \bf{6.41e-02} & \bf{5.28e-02}\s \\\cmidrule(l){3-14} & 6 & 2.68e-01 & 6.08e-01 & 6.05e-01 & 1.48e-01 & 2.17e-01 & 1.24e-01 & 1.23e+00 & 1.26e-01 & 1.16e-01 & 1.54e+02 & \bf{8.92e-02} & \bf{7.70e-02}\s \\\cmidrule(l){2-14} \multirow{3}{*}{BTC} & 1 & 2.55e-01 & 3.17e-01 & 3.17e-01 & 6.27e-02 & 2.26e-01 & 4.09e-01 & 1.20e+00 & 1.85e-01 & 1.11e-01 & 2.14e+02 & \bf{4.62e-02} & \bf{2.70e-02}\s \\\cmidrule(l){3-14} & 3 & 2.54e-01 & 3.18e-01 & 3.18e-01 & 6.43e-02 & 1.98e-01 & 4.41e-01 & 1.13e+00 & 1.84e-01 & 1.29e-01 & 2.86e+02 & \bf{4.73e-02} & \bf{2.96e-02}\s \\\cmidrule(l){3-14} & 6 & 2.53e-01 & 3.21e-01 & 3.20e-01 & 6.49e-02 & 2.35e-01 & 4.61e-01 & 1.38e+00 & 1.84e-01 & 1.40e-01 & 3.32e+02 & \bf{4.84e-02} & \bf{3.26e-02}\s \\\cmidrule(l){2-14} \multirow{3}{*}{ILI} & 1 & 1.94e-01 & 5.70e-01 & 5.94e-01 & 1.28e-01 & 1.14e-01 & \bf{9.50e-02} & 3.03e-01 & 1.38e-01 & 1.15e-01 & 2.48e+00 & 1.00e-01 & \bf{8.93e-02}\s \\\cmidrule(l){3-14} & 4 & 2.51e-01 & 5.39e-01 & 5.90e-01 & 1.52e-01 & 1.59e-01 & \bf{1.26e-01} & 3.53e-01 & 1.58e-01 & 1.53e-01 & 2.33e+00 & 1.33e-01 & \bf{1.25e-01}\s \\\cmidrule(l){3-14} & 8 & 3.07e-01 & 5.34e-01 & 5.98e-01 & 1.70e-01 & 1.82e-01 & \bf{1.45e-01}\s & 3.67e-01 & 1.74e-01 & 1.86e-01 & 2.38e+00 & 1.62e-01 & \bf{1.53e-01} \\ \bottomrule \end{tabular}} \end{table} ================================================ FILE: _ThesisBeamer/float/ch.cnn/time.tex ================================================ \begin{table}[h] \centering \footnotesize \caption*{神经网络模型在AR1、BTC和ILI数据集上的单次平均建模时间(s) } \resizebox{\textwidth}{!}{\begin{tabular}{ccrrrrrrrrr} \toprule \multirow{2}{*}{建模方法} & \multirow{2}{*}{模型} & \multicolumn{3}{c}{AR1} & \multicolumn{3}{c}{BTC} & \multicolumn{3}{c}{ILI} \\\cmidrule(lr){3-5} \cmidrule(lr){6-8}\cmidrule(lr){9-11} & & \multicolumn{1}{c}{1} & \multicolumn{1}{c}{3} & \multicolumn{1}{c}{6} & \multicolumn{1}{c}{1} & \multicolumn{1}{c}{3} & \multicolumn{1}{c}{6} & \multicolumn{1}{c}{1} & \multicolumn{1}{c}{4} & \multicolumn{1}{c}{8} \\ \midrule \multirow{3}{*}{梯度下降} & GS-CNN & 74.65 & 76.95 & 78.55 & 93.70 & 96.45 & 99.40 & 67.05 & 70.25 & 73.00 \\ & DeepAR & 225.25 & 238.95 & 257.70 & 223.75 & 251.10 & 268.65 & 256.80 & 279.10 & 275.30 \\ & CLSTM & 150.45 & 154.80 & 160.25 & 143.00 & 141.50 & 142.25 & 167.40 & 170.80 & 175.30 \\ \specialrule{0em}{1.5pt}{1.5pt} \multirow{3}{*}{随机映射} & RVFL & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} \\ & IELM & 2.65 & 2.85 & 2.80 & 3.40 & 3.30 & 3.20 & 2.55 & 2.55 & 2.40 \\ & SCN & 22.85 & 57.40 & 107.75 & 21.10 & 58.00 & 111.40 & 16.10 & 49.60 & 90.95 \\ \specialrule{0em}{1.5pt}{1.5pt} \multirow{2}{*}{消融方法} & Stoc-CNN & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} \\ & ES-CNN & 6.50 & 6.40 & 6.50 & 6.35 & 6.50 & 6.45 & 6.45 & 6.50 & 6.50 \\ \specialrule{0em}{1.5pt}{1.5pt} 所提方法 & ESM-CNN & 9.65 & 9.65 & 9.70 & 7.10 & 7.25 & 7.25 & 7.15 & 7.15 & 7.20 \\ \bottomrule \end{tabular}} \end{table} ================================================ FILE: _ThesisBeamer/slide.tex ================================================ % \documentclass[aspectratio=169,draft]{beamer} \documentclass[aspectratio=169]{beamer} \usepackage{pifont} \newcommand{\cmark}{\ding{51}} \newcommand{\xmark}{\ding{55}} \usepackage[T1]{fontenc} % \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{newunicodechar} \newunicodechar{±}{$\pm$} % \usepackage[frenchb]{babel} % \usepackage[ngerman]{babel} \newcommand\Mark[1]{\textsuperscript{#1}} % DOCUMENT INFORMATIONS: TITLE, AUTHOR, DATE, INSTITUTE % \email{xinze@hust.edu.cn} \titlegraphic{\includegraphics[scale=0.1]{./float/hust-logo.png}} % logo on titlepage only % PACKAGES \usetheme{BFH} % use BFH theme \usepackage{color} \usepackage{listings} \usepackage{hyperref} % links \usepackage{ragged2e} % justify format \usepackage{mathrsfs} % math font \usepackage{graphicx} \usepackage{tablefootnote} \usepackage{scalerel} % added for scale font in math \DeclareMathOperator*{\random}{random\llap{\phantom{arg}}} % \newtheorem{definition}{Definition} % \newcommand*{\definitionautorefname}{Definition} \usepackage{xspace} % added for declare robust command \usepackage{tabularx} \usepackage{CJKutf8} \usepackage{ragged2e} \usepackage{amssymb} \usepackage{multirow} \usepackage{makecell} \usepackage{enumitem} \usepackage{booktabs} \usepackage{caption} \usepackage{subcaption} \usepackage{tabularx} \newcolumntype{Y}{>{\centering\arraybackslash}X} \newcommand\cn[1]{\fontsize{9}{9} \begin{CJK*}{UTF8}{gbsn}{ #1}\end{CJK*}} % \newcommand\comment[1]{\fontsize{10}{10} \textit{\color{red!75!black} #1}} \newcommand\comment[1]{\fontsize{10}{10} \textit{#1}} \newcommand\reftag[1]{\fontsize{10}{10} {#1}} \usepackage{csquotes} % \usepackage[style=verbose-ibid,backend=bibtex,citestyle=authoryear]{biblatex} % \bibliography{anthology.bib} \DeclareFixedFont{\ttb}{T1}{txtt}{bx}{n}{9} % for bold \DeclareFixedFont{\ttm}{T1}{txtt}{m}{n}{9} % for normal \usepackage{amsmath,bm,mathtools,times} \DeclareMathOperator*{\argmax}{argmax} \DeclareMathOperator*{\argmin}{argmin} % \DeclareMathOperator{\trans}{\mathrm{T}} \DeclareMathOperator*{\avg}{Avg} \newcommand*\abs[1]{\left \lvert#1 \right \rvert} \newcommand*\norm[1]{\left \lVert #1 \right \rVert} \newcommand\trans{\mathrm{T}} \newcommand\x{\bm{x}} \newcommand\y{\bm{y}} \newcommand\e{\bm{e}} \newcommand\h{\bm{h}} \newcommand\w{\bm{w}} \newcommand\g{\bm{g}} \newcommand\m{\bm{m}} \newcommand\bs{\bm{s}} \newcommand\bp{\bm{p}} \newcommand\brho{\bm{\rho}} \newcommand\bv{\bm{v}} \newcommand\bu{\bm{u}} \newcommand\mathr{\mathbb{R}} \newcommand\mathd{\mathbb{D}} % \usepackage{breqn} \newcommand\ph{$\phantom{1}$} \newcommand\s{$^\star$} \newcommand\blfootnote[1]{% \begingroup \renewcommand\thefootnote{}\footnote{#1}% \addtocounter{footnote}{-1}% \endgroup } \usepackage{algorithm, algorithmic} \newlength{\twosubht} \newsavebox{\twosubbox} \usepackage{pgfpages} % \setbeameroption{show notes on second screen} \title{基于随机映射的时间序列深度学习预测建模技术研究} % \subtitle{Biography \& Research Interests} % \subtitle{ } \author[Xinze]{张心泽} \date{April 26, 2023} \institute[HUST]{ {\fontsize{9pt}{12pt}\selectfont School of Management,\\} \vspace{0.75em} {\fontsize{10pt}{12pt}\selectfont Huazhong University of Science and Technology}\\} \begin{document} \maketitle \input{body/intro.tex} \input{body/related.tex} \input{body/cnn.tex} % \input{body/esn.tex} % \input{body/dfs.tex} % \input{body/eto.tex} % \input{body/code.tex} \input{body/last.tex} % \input{1.inro.tex} % \input{2.cnn.tex} % \input{3.esn.tex} % \input{5.dfs.tex} % \input{4.eto.tex} % % \input{6.univ.tex} % \input{7.last.tex} % \begin{frame} % \frametitle{谢谢各位评委老师!} % \centering % \includegraphics[width=1\textwidth]{fig/aboutme.png} % \end{frame} \end{document} ================================================ FILE: body/appendix/app.tex ================================================ \begin{decision} 一般情况下,答辩委员会决议的内容不宜过少,亦不宜超过一页。不同学院对此页的要求(是否需要包含此页在最终存档模板内,是否需要单独提交,包含在模板内的改页是否需要答辩主席签字等)可能有所不同,具体内容请参照学院的相关规定。 若不需要此页,请将其从模板中删除。删除方式为注释或去掉本环境。 \end{decision} \begin{publications} 已发表论文: \renewcommand{\labelenumi}{[\arabic{enumi}]} \begin{enumerate} \item { \textbf{Xinze Zhang}, Kun He, and Yukun Bao. Error-feedback Stochastic Modeling Strategy for Time Series Forecasting with Convolutional Neural Networks. Neurocomputing, 2021, 459:234-248.(SCI 源刊,IF 5.719,署名单位:华中科技大学) } \item {Jianhua Yang, \textbf{Xinze Zhang}, and Yukun Bao. Short-term Load Forecasting of Central China based on DPSO-LSTM. In Proceedings of IEEE 4th International Electrical and Energy Conference, IEEC 2021. (EI 会议,署名单位:华中科技大学) } \item {\textbf{Xinze Zhang}, Junzhe Zhang, Zhenhua Chen, and Kun He. Crafting Adversarial Examples for Neural Machine Translation. In Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics, ACL 2021. (CCF A类国际会议,署名单位:华中科技大学)} \end{enumerate} \vspace{1em} 工作论文: \begin{enumerate} \item { \textbf{Xinze Zhang}, Kun He, Yukun Bao, and Qi Sima. Error-feedback Triple-phase Optimization to Configurable Convolutional Echo State Network for Time Series Forecasting. } \item { \textbf{Xinze Zhang}, Qi Sima, Kun He, Yukun Bao, and Shuhan Chen. Enhancing Echo State Network with Particle Swarm Bayesian Optimization Enabled Echo State Selection for Time Series Forecasting. } \item { Qi Sima, \textbf{Xinze Zhang}, and Yukun Bao. Reinforced Decoder: Towards Training Sequence-to-Sequence Model for Time Series Forecasting. } \end{enumerate} \end{publications} \begin{paperRelation} \renewcommand\tabularxcolumn[1]{m{#1}} % 已发表论文与博士学位论文的关系: \begin{table}[!htbp] \centering \renewcommand\arraystretch{2} \begin{tabularx}{\textwidth}{|c|Y|Y|Y|Y|} \hline \makecell*[c]{序号} & \makecell*[c]{成果名称} & \makecell*[c]{成果形式} & \makecell*[c]{成果主要内容} & \makecell[c]{与学位论文 \\对应关系} \\ \hline 1 & {Error-feedback Stochastic Modeling Strategy for Time Series Forecasting with Convolutional Neural Networks} & \makecell[c]{SCI 期刊 \\(已发表)} & \multicolumn{1}{X|}{提出了误差反馈随机建模的迭代构造策略,结合贪心搜索自适应确定卷积结构,构造出一种新颖、高效且准确的随机卷积神经网络预测模型} & \multicolumn{1}{X|}{该成果为论文第3章主要内容} \\ \hline 2 & {Short-term Load Forecasting of Central China based on DPSO-LSTM} & \makecell[c]{EI会议 \\(已发表) } & \multicolumn{1}{X|}{提出了时步多维度的时序输入特征二维结构,结合粒子群优化算法选择时步维度与模型参数,提升了LSTM模型的短期电力负荷预测效果} & \multicolumn{1}{X|}{基于对该成果的改进,构成论文第5章主要内容} \\ \hline \end{tabularx} \end{table} \end{paperRelation} \begin{project} \renewcommand{\labelenumi}{\arabic{enumi}.} \begin{enumerate} \item {国家自然科学基金面上项目:大数据环境下基于计算智能的预测建模技术及其在电力负荷预测中的应用,批准年限:{2019/01 - 2022/12}。} \item {国家自然科学基金面上项目:{自然语言处理深度模型的对抗攻防关键算法研究,批准年限:{2021/01 - 2024/12}}。} \item {湖北省国际科技合作项目:{深度学习模型对抗攻防基础理论与算法研究,批准年限:{2021/09 - 2023/09}}}。 \item {国家电网公司科技项目:{华中区域共享型电力交易与服务平台关键技术研究,批准年限:2020/06 - 2021/11}}。 \item {国家电网公司科技项目:{渝鄂直流运行条件下华中消纳西南水电交易电量库模型建立与效益分析,批准年限:2019/05 - 2020/11}}。 \end{enumerate} \end{project} \begin{denotation} \item[CNN] Convolutional Neural Network(卷积神经网络) \end{denotation} \begin{otherDatas} % 其他数据图表或程序 本处放置其他数据图表或程序的相关内容。当仅包含某一类别时,建议将本节名进行修改。例如,本节将仅包含本论文中所使用的数据集图示,因此在本人所提交的学位论文中,基于答辩委员会的意见,本节名称被修改为“本文数据集展示”。 若无其他数据图表或程序,建议将本节删除。删除方式为注释或去掉本环境。 以下是本节内容节选: \cref{fig:app.ar1}展示了本文中的经典人工合成时间序列数据,包括一阶自回归(AR1)合成数据.....各数据集的简要说明如下: \autoref{fig:app.ar1}展示了AR1合成数据,该数据参考相关研究\cite{qi2008trend,crone2016feature}的参数设定,通过\autoref{sec:esm.exp}中的\autoref{eq:ar}予以合成。 \begin{figure}[h] \centering \includegraphics[width = 0.9\textwidth]{float/ch.app/ar1.png} \captionsetup{skip=2pt} \setlength{\belowcaptionskip}{-8pt} \caption{AR1合成数据\label{fig:app.ar1}} \end{figure} \end{otherDatas} % \phantomsection % \input{body/chapter/univ.tex} ================================================ FILE: body/chapter/ack.tex ================================================ %%% Local Variables: %%% mode: latex %%% TeX-master: "../../main" %%% End: \begin{ack} 在博士研究生经历中,有过许多挑战和成长。回想一路走来,有过研究时的迷惘,有过发表时的兴奋,也有过展望时的徘徊,感慨万千。在此,向所有的支持者表示感谢。 ...... \end{ack} ================================================ FILE: body/chapter/cnn.tex ================================================ % \chapter[误差反馈随机映射卷积神经网络预测模型构造方法]{误差反馈随机映射卷积神经网络预测模型构造方法 % \footnote[11]{本章主要内容已发表在:Zhang, Xinze, Kun He, and Yukun Bao. "Error-feedback stochastic modeling strategy for time series forecasting wi th convolutional neural networks." Neurocomputing 459 (2021): 234-248.} % } \chapter{基于卷积结构的SDNN预测模型构造与优化方法 \label{sec:chapter.cnn} % \footnote[11]{本章主要内容已发表在:Zhang, Xinze, Kun He, and Yukun Bao. "Error-feedback stochastic modeling strategy for time series forecasting wi th convolutional neural networks." Neurocomputing 459 (2021): 234-248.} } \section{引言} % 基于深度学习的时间序列预测建模技术在众多现实决策问题中发挥了重要作用。 % 发明准确高效的时间序列预测建模技术具有重要的理论意义和现实应用价值。 近年来,作为深度神经网络(DNN)的代表结构之一,基于卷积结构的卷积神经网络(CNN)因其优异的特征提取能力与学习能力已被广泛地应用于时间序列预测建模问题中~\cite{sezer2018algorithmic,cavalliCNNbased2021,sadaei2019short}。 然而,如何基于时间序列数据自适应地选择模型结构与参数是应用CNN预测建模技术中的关键挑战。 对于模型选择问题,已有众多研究者展开了相关研究。 Elsken et al.~\cite{elskenNeural2019a}对神经网络模型的既有模型选择方法进行了研究综述,总结出定义神经网络参数搜索空间、针对参数训练模型和基于训练模型结构对所搜索参数加以优化的模型选择范式。 但是,这种传统的模型选择范式需要消耗大量的计算资源与训练时间,使得卷积神经网络时间序列预测建模技术的现实应用面临参数构造难、计算开销大等阻碍~\cite{zela2018towards}。 相较于有训练权重参数的CNN模型,采用随机映射方法构造的CNN模型在图像风格迁移、语音合成、函数拟合等问题中展现出充分潜力~\cite{hePowerful2016,antogniniAudio2019,yuImpact2019}。 这种基于随机映射的CNN模型具有计算开销低、收敛速度快、学习性能好等特点,但也存在网络结构设计难、随机权重输出结果不稳定等问题。 针对时间序列预测问题,Yu et al.~\cite{yuImpact2019}通过将CNN模型中的卷积权重随机初始化并固定,利用最小二乘法闭式求解输出权重,建立了随机卷积神经网络预测模型,并结合合成时间序列数据和煤气供应数据,验证了其方法的可行性。 但此预测建模方法存在若干问题。首先,其卷积结构的选择依赖于人工经验,使得模型无法根据不同预测情景自适应选择合适参数;其次,输出权重全局更新的求解方式,随着卷积核数量的增加,将使卷积层的隐藏特征维度倍数增加,导致求解输出权重的最小二乘法出现病态矩阵问题,削弱了模型的稳定性,甚至使模型出现欠拟合的问题。 因此,如何建立基于卷积结构的随机深度神经网络(SDNN)预测模型的新颖构造及自适应优化方法,解决已有卷积结构SDNN预测建模技术中参数选择时的人工依赖、输出权重求解时的病态矩阵和预测过程的不稳定性,以有效利用随机映射方法的效率优势与卷积结构的学习能力,是本章的研究重点。 为此,本章在已有研究的基础上,针对基于卷积结构的SDNN预测模型构造与自适应优化问题,创新地提出了一种基于误差反馈随机建模(Error-feedback stochastic modeling, ESM)和贪心搜索选择的CNN构造与优化方法(ESM-CNN)。在ESM-CNN这一卷积结构的SDNN预测模型构造与优化方法中,ESM策略通过递归生成随机映射卷积核的方式提高了模型构造效率,并借助误差反馈策略,单独求解各卷积核输出权重,保证了所构造模型的理论收敛性,以此高效构造出具有理论收敛性的预测模型;同时,通过贪心算法解决模型构造中随机映射卷积核的选择问题,使得ESM-CNN能够自适应的在单卷积层内具备不同卷积宽度的卷积核,以此增强了ESM-CNN学习不同尺度时间序列特征的能力,进一步地提高了模型预测性能;最后,采用合成数据和多个真实数据集充分验证了ESM-CNN的有效性以及卷积核选择方法的必要性,与传统随机多层感知机(SMLP)模型和梯度下降训练DNN模型相比,ESM-CNN具有优秀的预测性能与建模效率,是解决时间序列预测问题的有效方法。 本章的主要内容包括:\secref{sec:esm.cnn}简要介绍了传统CNN预测模型的构造过程,并对本章节所提出的ESM-CNN模型构造与优化方法进行了详细阐述;\secref{sec:esm.exp}从数据集选取、对比模型选取、评价指标选取、实验流程和实验环境等方面介绍了本章的实验方案;\secref{sec:esm.ana}比较、分析和总结了各模型在所选数据集上的实验结果;最后,\secref{sec:esm.conc}对本章予以小结。 \section{ESM-CNN预测模型 \label{sec:esm.cnn}} \subsection{CNN预测模型} 卷积神经网络(CNN)是将输入连接卷积核做局部非线性变换,并池化展开特征图所构成的神经网络~\cite{lecun1995convolutional}。 卷积是指输入的滑动局部非线性变换。 通过对时间序列输入特征的卷积操作,卷积核(Convolutional filter)能够基于完整输入学习出有用的非线性特征,并建立起所学习特征与对应卷积核宽度(Filter size)输入的关系,由此组成了卷积层(Convolutional layer)的输出特征图(Feature map)。这些特征图往往被送入池化层(Pooling layer)进行下采样(Subsample)以降低卷积层的输出带宽(Output band),同时增强神经网络对异常特征图值的鲁棒性~\cite{yang2015deep,zhao2017convolutional,koprinskaConvolutional2018}。 池化操作后的特征图会继续送入神经网络的下一层结构中,以学习更抽象的表示或生成输出结果。 这里,本节对一种典型结构CNN预测模型进行具体介绍,该模型由生成特征图的单卷积层、进行下采样的平均池化层(Pooling layer)和生成预测结果的全连接层(Fully connected layer)组成。 对于由$N$个样本组成的时间序列数据$D=\left\{\left(X_{i}, Y_{i}\right) \in\left(\mathbb{R}^{T} \times \mathbb{R}^{H}\right)\right\}_{i=1}^{N}$,其中$X_i$表示历史T步内的时间序列观测值$X_i = [x_1,\dots, x_T]^{\trans}$,$Y_i$表示预测时长H步内的时间序列观测值$Y_i = [x_{T+1},\dots, x_{T+H}]^{\trans}$。一个具有$C$个卷积核的CNN预测模型可表示为如\autoref{eq:conv},\autoref{eq:pool}和\autoref{eq:sec.cnn.fc}所示过程: \begin{align} m_j^t &= \sigma \left(\sum^{K_m}_{k_m=1} w^{k_m}_j x_{t+k_m-1} +b_j\right), \quad &t &= 1,\dots, T-K_m +1, \label{eq:conv} \\ p_j^i &= \frac{\sum^{K_p}_{k_p=1} m_j^{i+k_p-1}}{K_p}, \quad &i &= 1,..., T-K_p - K_m+2, \label{eq:pool} \\ f_C &= \sum^C_{j=1} \left( \sum^{T-K+2}_{i=1}\beta_{j}^i p_j^i\right) + \beta_0.& & \label{eq:sec.cnn.fc} \end{align} \autoref{eq:sec.cnn.fc}中,$K = K_p + K_m$,$K_p$和$K_m$分别为池化操作与卷积操作的宽度大小。 \autoref{eq:pool}中,${m}_j$为特征图向量$[m_j^1, \ldots, m^{T-{K_m}+1}_j]^{\mathrm{T}}$,基于第$j$个卷积在输入时间序列做如\autoref{eq:conv}所示的卷积操作后得到。 $\sigma(\cdot)$表示卷积核所使用的激活函数。在本章节中,$\sigma(\cdot)$为sigmoid激活函数。 ${w_j} = [w_j^1,\ldots, w_j^{K_m}]$和$b_j$分别为第$j$个卷积核的权重与偏置项。 $p_j$表示对${m}_j$做如\autoref{eq:pool}所示平均池化操作后的池化特征图向量$[p_j^1, \ldots, p^{T-{K}+2}_j]^{\mathrm{T}}$。 $[\beta_1^1, \beta_1^2,\ldots,\beta_C^{T-K+2}]$和$\beta_0$为第$j$个卷积核与输出层间的全连接层权重与偏置项,$\beta_j^i = [\beta_{j}^{i,1},\ldots,\beta_{j}^{i,H}]^{\mathrm{T}}$。 \begin{figure*}[!t] \centering \includegraphics[width = \textwidth]{float/ch.cnn/esm-cnn.png} \caption{\label{fig:esm_arch} ESM-CNN预测模型神经网络结构} \end{figure*} 在传统的CNN预测模型构造方法中,通过以减小预测误差$\| e \|$为目标,梯度下降训练包含所有权重项与偏置项在内的权重参数,CNN能够有效学习出历史输入时间序列与预测目标时间序列间的函数关系,生成良好的预测结果。 但这种构造方法需要预先定义包含卷积核宽度、卷积核数量、梯度下降学习速率等众多超参数(Hyper-parameters),进过反复迭代训练评价后,才能选择出合适的超参与权重参数组合。此过程往往会消耗大量的计算资源和时间,存在显著的改进空间。 为解决现有CNN预测建模技术模型选择困难、计算开销高等问题,本章提出了一种误差反馈随机建模(ESM)构造策略,结合基于贪心算法的卷积核选择算法,建立ESM-CNN预测模型。该模型神经网络结构如\autoref{fig:esm_arch}所示,其中绿色线、黄色线和蓝色线分别表示不同结构随机卷积核的卷积与池化操作,深浅不同的红色线表示迭代局部更新的输出权重,同一深度的红色线表示链接同一卷积核的输出权重。 \subsection{误差反馈随机建模策略\label{sec:esm.esm}} 为高效构造具备可靠预测性能的卷积结构SDNN预测模型,利用随机映射方法的优异建模效率,同时解决随机映射算法对预测性能稳定性的干扰,本节提出了一种ESM策略,建立CNN构型下的SDNN预测模型。 该方法通过在单卷积层内递归增长添加固定随机初始化权重卷积核的方式构造CNN隐藏结构,同时利用误差反馈闭式计算新增卷积核所对应的输出权重参数,以此完成整个预测模型的构造过程,同时为模型的预测函数拟合能力提供理论收敛保证。 具体地,对于一个已具有$C$个卷积核的单卷积层ESM-CNN,其模型可被公式表述为: \begin{equation} \label{eq:sccnn} f_C = \sum^C_{j=1} \left( \sum^{T-K+2}_{i=1}\beta_{j}^i p_j^i + \beta^0_j \right), \end{equation} 并进一步简写为:$f_C= \sum^C_{j=1}\sum^{T-K+2}_{i=0} \beta_j^i p_j^i$。 \autoref{eq:sccnn}中,$\beta_j = [\beta_j^0, \beta_j^1, \ldots, \beta_j^{T-K+2}]$ 表示全连接输出层中连接第$j$个卷积核池化特征图向量与输出单元的权重参数,$p_j^0 = I$。 ESM-CNN的预测误差如\autoref{eq:sec.cnn.error}所示: \begin{equation} e_C = Y- f_C = [e_C^1,\ldots, e_C^H]. \label{eq:sec.cnn.error} \end{equation} 若预测模型的均方误差(Mean square error,MSE)未降低至容忍水平$\varrho$,ESM策略将继续新增一个随机映射卷积核$m_{C+1}$生成对应的池化特征图向量$p_{C+1}$,并将$p_{C+1}$全连接至输出层中以加宽模型隐藏结构。 其中,新增卷积核所对应的全连接输出层权重将基于当前模型的预测误差$e_C$反馈,通过如\autoref{eq:scupdate}最小二乘法加以求解: \begin{equation}\label{eq:scupdate} \left[\beta_{{C+1}}^0, \ldots, \beta_{{C+1}}^{T-K+2} \right]=\argmin _{\beta}\|e_C -\sum_{i=0}^{T-K+2} \beta_{C+1}^i p_{C+1}^i \|. \end{equation} 通过此策略,所构造的ESM-CNN预测模型能够具备随着卷积核数量增加而单调下降并收敛的预测误差,从而完成对预测目标函数的逼近。该性质通过如下代数推导予以证明: \begin{proof} 定义ESM-CNN的预测误差中间项为:$\tilde{e}_{C+1}^{\, 0}, \ldots, \tilde{e}_{C+1}^{\, T-K+2} $,新增卷积核所对应的全连接输出层权重中间项为:$\tilde{\beta}_{C+1}^{\, 0}, \ldots, \tilde{\beta}_{C+1}^{\, T-K+2}$,中间项之间的计算关系为: \begin{alignat*}{2} & \tilde{e}_{C+1}^{\, i+1} & = & \mspace{18mu} \tilde{e}_{C+1}^{\, i}-\tilde{\beta}_{C+1}^{\, i+1} p_{C+1}^{i+1}, \quad i = 0,\ldots,T-K+1, \\ \shortintertext{其中,} & \tilde{\beta}_{C+1}^{\, i+1} & = & \mspace{18mu} [\tilde{\beta}_{C+1}^{\, i+1,1}, \ldots,\tilde{\beta}_{C+1}^{\, i+1,h},\ldots, \tilde{\beta}_{C+1}^{\, i+1,H}], \\ & \tilde{\beta}_{C+1}^{\, i+1,h} & = & \mspace{18mu} \left\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1}\right\rangle /\left\|p_{C+1}^{\, i+1}\right\|^{2} , \quad h= 1, \ldots, H , \\ \shortintertext{同时,} & \tilde{e}_{C+1}^{\, 0} & = & \mspace{18mu} e_{C}- \tilde{\beta}_{C+1}^{\, 0} p_{C+1}^{\, 0}, \\ & \tilde{\beta}_{C+1}^{\, 0} & = & \mspace{18mu} [\tilde{\beta}_{C+1}^{\, 0,1}, \ldots,\tilde{\beta}_{C+1}^{\, 0,h},\ldots, \tilde{\beta}_{C+1}^{\, 0,H}], \\ & \tilde{\beta}_{C+1}^{\, 0,h} & = & \mspace{18mu} \left\langle {e}_{C}^{\, h}, p_{C+1}^{\, 0}\right\rangle /\left\|p_{C+1}^{\, 0}\right\|^{2} , \quad h= 1, \ldots, H , \\ % \shortintertext{可得:} & \tilde{e}_{C+1}^{\, T-K+2} \, & = & \mspace{18mu} {e}_{C} - \sum^{T-K+2}_{i=0} \tilde{\beta}_{C+1}^{\, i} p_{C+1}^{\, i}. \end{alignat*} 因新增卷积核所对应的全连接输出层权重基于最小二乘法予以求解: $$ \left[\beta_{{C+1}}^0, \ldots, \beta_{{C+1}}^{T-K+2} \right]=\argmin _{\beta} \,\|e_C -\sum_{i=0}^{T-K+2} \beta_{C+1}^i p_{C+1}^i \|, $$ 则$\left\|e_{C+1}\right\|^{2}$与$\left\|\tilde{e}_{C+1}^{\, T-K+2}\right\|^{2}$存有不等式关系: $$ \|e_{C+1}\|^{2} \,= \min _{\beta} \,\| e_C -\sum_{i=0}^{T-K+2} {\beta}_{{C+1}}^i p_{C+1}^i \|^{2} \, \leq \| {e}_{C} - \sum^{T-K+2}_{i=0} \tilde{\beta}_{C+1}^{\, i} p_{C+1}^{\, i} \|^{2} \, = \|\tilde{e}_{C+1}^{\, T-K+2}\|^{2}. $$ 同时,预测误差中间项之前存在着单调下降性质: \begin{align*} & \|\tilde{e}_{C+1}^{\, i+1}\|^2-\|\tilde{e}_{C+1}^{\, i}\|^2 \\ ={} & \sum_{h=1}^{H} \left( \langle \tilde{e}_{C+1}^{\, i,h}-\tilde{\beta}_{C+1}^{\, i+1,h} p_{C+1}^{i+1} , \tilde{e}_{C+1}^{\, i,h}-\tilde{\beta}_{C+1}^{\, i+1,h} p_{C+1}^{i+1} \rangle - \langle \tilde{e}_{C+1}^{\, i,h}, \tilde{e}_{C+1}^{\, i,h} \rangle \right) \\ ={} & \sum_{h=1}^{H} \left( \langle \tilde{\beta}_{C+1}^{\, i+1} p_{C+1}^{i+1} , \tilde{\beta}_{C+1}^{\, i+1} p_{C+1}^{i+1} \rangle - 2 \langle \tilde{e}_{C+1}^{\, i,h} , \tilde{\beta}_{C+1}^{\, i+1} p_{C+1}^{i+1} \rangle \right) \\ ={} & \sum_{h=1}^{H} \left( \langle \frac{\left\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1}\right\rangle}{\left\|p_{C+1}^{\, i+1}\right\|^{2}} p_{C+1}^{i+1} , \frac{\left\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1}\right\rangle}{\left\|p_{C+1}^{\, i+1}\right\|^{2}} p_{C+1}^{i+1} \rangle - 2 \langle \tilde{e}_{C+1}^{\, i,h} , \frac{\left\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1}\right\rangle}{\left\|p_{C+1}^{\, i+1}\right\|^{2}} p_{C+1}^{i+1} \rangle \right) \\ ={} & \sum_{h=1}^{H} \left( \frac{{\left\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1}\right\rangle}^2}{\left\|p_{C+1}^{\, i+1}\right\|^{4}} \langle p_{C+1}^{i+1} , p_{C+1}^{i+1} \rangle - 2 \frac{\left\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1}\right\rangle}{\left\|p_{C+1}^{\, i+1}\right\|^{2}} \langle \tilde{e}_{C+1}^{\, i,h} , p_{C+1}^{i+1} \rangle \right) \\ ={} & \sum_{h=1}^{H} \left( \frac{{\left\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1}\right\rangle}^2}{\left\|p_{C+1}^{\, i+1}\right\|^{4}} {\left\|p_{C+1}^{\, i+1}\right\|^{2}} - 2 \frac{{\left\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1}\right\rangle}^2}{\left\|p_{C+1}^{\, i+1}\right\|^{2}} \right) \\ ={} & \sum_{h=1}^{H} \left( - {\langle \tilde{e}_{C+1}^{\, i,h}, p_{C+1}^{\, i+1} \rangle}^2 / \left\|p_{C+1}^{\, i+1}\right\|^{2} \right) \\ \leq{} & 0 . \end{align*} 该性质在$\left\|\tilde{e}_{C+1}^{\, 0}\right\|^{2}$与$\left\|e_{C}\right\|^{2}$间仍然保持: \begin{align*} & \|\tilde{e}_{C+1}^{\,0}\|^2-\|{e}_{C}\|^2 \\ ={} & \sum_{h=1}^{H} \left( \langle {e}_{C}^{\, h}-\tilde{\beta}_{C+1}^{\, 0,h} p_{C+1}^{0} , {e}_{C}^{\, h}-\tilde{\beta}_{C+1}^{\, 0,h} p_{C+1}^{0} \rangle - \langle {e}_{C}^{\, h}, {e}_{C}^{\, h} \rangle \right) \\ ={} & \sum_{h=1}^{H} \left( \langle \tilde{\beta}_{C+1}^{\, 0,h} p_{C+1}^{0} , \tilde{\beta}_{C+1}^{\, 0,h} p_{C+1}^{0} \rangle - 2 \langle {e}_{C}^{\, h} , \tilde{\beta}_{C+1}^{\, 0,h} p_{C+1}^{0} \rangle \right) \\ ={} & \sum_{h=1}^{H} \left( \langle \frac{\left\langle {e}_{C}^{\, h}, p_{C+1}^{\, 0}\right\rangle}{\left\|p_{C+1}^{\, 0}\right\|^{2}} p_{C+1}^{0} , \frac{\left\langle {e}_{C}^{\, h}, p_{C+1}^{\, 0}\right\rangle}{\left\|p_{C+1}^{\, 0}\right\|^{2}} p_{C+1}^{0} \rangle - 2 \langle {e}_{C}^{\, h} , \frac{\left\langle {e}_{C}^{\, h}, p_{C+1}^{\, 0}\right\rangle}{\left\|p_{C+1}^{\, 0}\right\|^{2}} p_{C+1}^{0} \rangle \right) \\ ={} & \sum_{h=1}^{H} \left( \frac{{\left\langle {e}_{C}^{\, h}, p_{C+1}^{\, 0}\right\rangle}^2}{\left\|p_{C+1}^{\, 0}\right\|^{4}} \langle p_{C+1}^{0} , p_{C+1}^{0} \rangle - 2 \frac{\left\langle {e}_{C}^{\, h}, p_{C+1}^{\, 0}\right\rangle}{\left\|p_{C+1}^{\, 0}\right\|^{2}} \langle {e}_{C}^{\, h} , p_{C+1}^{0} \rangle \right) \\ ={} & \sum_{h=1}^{H} \left( \frac{{\left\langle {e}_{C}^{\, h}, p_{C+1}^{\, 0}\right\rangle}^2}{\left\|p_{C+1}^{\, 0}\right\|^{4}} {\left\|p_{C+1}^{\, 0}\right\|^{2}} - 2 \frac{{\left\langle {e}_{C}^{\, h}, p_{C+1}^{\, 0}\right\rangle}^2}{\left\|p_{C+1}^{\, 0}\right\|^{2}} \right) \\ ={} & \sum_{h=1}^{H} \left( - {\langle {e}_{C}^{\, h}, p_{C+1}^{\, 0} \rangle}^2 / \left\|p_{C+1}^{\, 0}\right\|^{2} \right) \\ \leq{} & 0 . \end{align*} 因此,ESM-CNN的预测误差收敛性可证: $$ \|e_{C+1}\|^2 \; \leq \|\tilde{e}_{C+1}^{\, T-K+2}\|^2 \; \leq \|\tilde{e}_{C+1}^{\,0}\|^2 \; \leq \|{e}_{C}\|^2 . $$ \NoEndMark \end{proof} 与全局更新输出层权重的构造方式不同,本章所提出的ESM构造策略通过误差反馈迭代局部更新输出层权重的方式完成输出层权重的计算。具体地,ESM构造策略具备以下三种优势:1)与全局更新输出层权重相比,迭代局部更新输出层权重的方式具有更小的计算开销,这种低开销优势会随隐藏层结构的增大同时扩大;2)随着卷积层中递归新增卷积核的不断加入,链接至输出层的池化特征图向量维度会同时倍数增大,与预测目标维度相比过大的特征维度会导致闭式求解算法的病态问题(Ill-posed problem)\cite{vogel2002computational},进而破坏预测性能的稳定性和鲁棒性;3)基于误差反馈递归更新输出权重构造的预测模型能在神经网络隐藏构造的过程中不断弥补上步预测误差,同时,这种历史输出权重保持固定的方式在一定程度上承担了正则化的作用,从而增强了所构造模型的性能稳定性。 \subsection{卷积参数贪心选择方法 \label{sec:chapCNN.greedy}} 针对ESM-CNN预测模型构造过程中的卷积核选择问题,本章节提出了一种基于贪心算法的卷积核选择方法,使得ESM-CNN具有在单卷积层中同时具备不同宽度的卷积核结构,以此增强模型对于不同尺度时间序列特征的学习建模能力。 对于如\autoref{eq:sccnn}所示具有$C$个卷积核的单卷积层ESM-CNN,在新增卷积核结构时,基于均匀分布(Uniform distribution)$[-\lambda, \lambda]$、卷积与池化宽度$\{(K_{m,s}, K_{p,s})\}^S_{s=1}$生成一批对应的池化特征图向量 $\{p_{{C+1},s} \}^S_{s=1}$表示对应的备选卷积核结构。 为评价这些备选卷积核结构,利用将备选卷积核加入当前网络中所能下降的预测误差,本节提出了一种卷积核评分$\Delta_{{C+1, s}}$,其计算方式如\autoref{eq:filterScore}所示: \begin{align} \Delta_{{C+1},s} & = \| e_{C+1,s} \|^2 - \| e_{C} \|^2 \label{eq:filterScore} \\ {} & = \|\ e_C -\sum_{i=0}^{T-K^{\prime}+2} \beta_{C+1, s}^i p_{C+1, s}^i \|^2 - \| e_{C} \|^2, \notag \end{align} \autoref{eq:filterScore}中,$K^{\prime} = K_{m,s} + K_{p,s}$,$p^i_{C+1, s}$和$\beta^i_{C+1, s}$分别由\autoref{eq:pool}和\autoref{eq:scupdate}计算得出。 基于所提出的卷积核评分$\Delta_{{C+1, s}}$,将实现最好预测效果提升的备选卷积核$p_{C+1}^{*}$选出,作为新增卷积核正式加入当前神经网络结构,该过程如\autoref{eq:scselection}所示: \begin{equation}\label{eq:scselection} p_{C+1}^{*} = \argmax\limits_{p_{{C+1},s}} \{ \Delta_{{C+1},s}, s = 1,\ldots,S \}. \end{equation} 在此之后,新增卷积核所对应的全连接输出层权重通过\ref{eq:scupdate}求解得出。结合本章节所提出的ESM构造策略与卷积核选择方法,高效构造出一种具备多尺度时间序列特征学习能力、预测函数拟合收敛性和稳定预测性能的ESM-CNN预测模型。 % \autoref{fig:esm_arch}详细描绘了ESM-CMM预测模型的神经网络结构。 \begin{figure*}[!t] \centering \includegraphics[width = 0.8\textwidth]{float/ch.cnn/flow.png} \caption{\label{fig:flowchart} ESM-CNN预测模型构造过程} \end{figure*} \subsection{ESM-CNN构造过程} 如\autoref{fig:flowchart}所示,ESM-CNN预测模型的构造过程主要包含:预处理、初始化、评价和更新四个环节。 具体地,所述模型及构造过程为: (1)对于时间序列数据,构造训练数据集$D=\left\{\left(X_{i}, Y_{i}\right) \in\left(\mathbb{R}^{T} \times \mathbb{R}^{H}\right)\right\}_{i=1}^{N}$,并将数据集$D$归一化至标准正态分布。其中,$N$为数据集$D$中的总样本数,数据集中样本$(X_i,Y_i )$由包含历史T时刻内的时间序列数据$[x_1,\ldots,x_T ]^{\trans}$和未来H步时刻内的时间序列预测目标$[x_{T+1},\ldots,x_{T+H}]^{\trans}$组成。 (2) 设定ESM-CNN预测模型的初始化参数,包括容忍水平$\varrho $,最大特征图通道数$C_{\max}$,初始预测误差$e_0 = [x_{T+1},\ldots,x_{T+H}]^{\trans}$,卷积核宽度$K_m$选择范围$M=\{ K_{m,s}\}^S_{s=1}$与池化操作宽度挑选范围$P=\{K_{p,s}\}^S_{s=1}$,以及卷积核权重的随机初始化分布$[-\lambda,\lambda]$。 (3)在终止条件为特征图通道数$C\leq C_{\max}$或当前模型预测结果的MSE小于$\varrho $的构造过程中,基于卷积核宽度选择范围$M$与池化操作宽度选择范围$P$,依次从参数组合$(K_{m,s}, K_{p,s})$和均匀分布$[-\lambda,\lambda]$中生成$S$个备选卷积核,以此构成卷积核备选集,并根据得到的备选集,计算各备选卷积核下的池化特征图向量$\{ p_{C+1,s}\}^S_{s=1}$。 (4)基于\autoref{eq:filterScore}计算各备选卷积核的评分,从中贪心选出最优的卷积核结构及对应卷积核权重,将其加入当前神经网络结构中,更新卷积层卷积核数量和模型预测误差。迭代此过程,直至满足终止条件。 \section{实验设计与流程\label{sec:esm.exp}} \subsection{数据集描述} 为充分评估所提ESM-CNN预测模型的预测性能和验证其收敛能力,本章节在经典人工合成时间序列数据集和多项真实时间序列数据集上进行实验验证研究。实验数据集名称及简写如\autoref{tab:cnn.dataName}所示。 \autoref{tab:app_data}展示了本章节所用数据集的统计信息。其中,第一列、第五列和第六列说明了所用数据集的名称,起始截止日期和大小。 第二列展示所用数据集的平稳性(Stationarity)状态,“\cmark”表示该数据集为平稳的,“\xmark'表示该数据集为非平稳的,该状态通过扩张的迪基-福勒检验(Augmented Dickey Fuller,ADF)\footnote{https://www.statsmodels.org/stable/generated/statsmodels.tsa.stattools.adfuller.html}判断得出。第三列与第四列则分别表示了数据集的趋势性(Trend)与季节性(Seasonality)强度分数\footnote{https://otexts.com/fpp2/seasonal-strength.html},分数越高表明该数据具备越强的趋势性或季节性。各数据集的说明如下: \begin{table}[!t] \centering \caption{实验数据集名称及英文缩写对照 \label{tab:cnn.dataName}} \begin{tabularx}{\textwidth}{lXl} \toprule {数据集中文名称} & {数据集英文名称} & 英文缩写 \\ \midrule 一阶自回归 & First order autoregression & AR1 \\ 比特币两小时美元价格 & Two-hourly bitcoin to U.S. dollar price & BTC \\ 流感阳性样本率 & Influenza-like illness rate & ILI \\ 欧洲布伦特原油周价格 & Weekly Europe Brent crude oil price & BRENT-weekly \\ 欧洲布伦特原油周价格 & Daily Europe Brent crude oil price & BRENT-daily \\ 美国WTI原油周间价格 & Weekly WTI crude oil price & WTI-weekly \\ 标普500每日收盘指数 & Daily close value of S\&P 500 index & S\&P 500 \\ 纳斯达克每日收盘指数 & Daily close value of NASDAQ Composite & NASDAQ \\ 道琼斯每日收盘指数 & Daily close value of Dow Jones Average & DJI \\ 纽约证交所每日收盘指数 & Daily close value of NYSE Composite & NYSE \\ \bottomrule \end{tabularx} \end{table} \input{float/ch.cnn/data.tex} 针对合成数据上的预测实验研究,AR1数据集作为评价时间序列预测模型的常用基准数据集之一,参照相关研究\cite{qi2008trend,crone2016feature}的参数设定通过\autoref{eq:ar}予以合成: \begin{equation} \label{eq:ar} x_t = \alpha + x_{t-1} + \varepsilon_t, %\vspace{-0.1em} \end{equation} 其中,$\alpha = 0.01$, $\varepsilon_t \sim i.i.d.~\mathrm{U}(-0.25,0.25)$,共合成出500个观测点。 针对比特币价格预测应用研究,本章节所用BTC数据集通过Tradeviw平台\footnote{https://www.tradingview.com/symbols/BTCUSD}采集2020年5月25日至2021年3月20日间的两小时级美元收盘价得到,共有2181个观测点。 针对流感阳性样本率预测应用研究,本章节所用ILI数据集通过中国国家流感中心平台\footnote{https://ivdc.chinacdc.cn/cnic/en/Surveillance/WeeklyReport/} 采集2010年1月15日至2020年4月15日间的中国南方地区每周流感阳性样本率得到,共有535个观测点。 针对原油价格预测应用研究,本章节分别通过采集欧洲BRENT市场\footnote{https://www.eia.gov/dnav/pet/hist/RBRTEd.htm}和美国WTI市场\footnote{ https://www.eia.gov/dnav/pet/hist/rwtcW.htm}公开至2021年5月3日间的每周美元收盘价格及每日美元收盘价格,得到BRENT-weekly(1773个观测点)、BRENT-daily(8620个观测点)、WTI-weekly(1844个观测点)和WTI-daily(8904个观测点)数据。 针对股票指数预测应用研究,本章节通过UCI机器学习数据集\footnote{https://archive.ics.uci.edu/ml/machine-learning-databases/00554/}得到2009年12月31日至2017年11月15日间的S\&P 500、NASDAQ、DJI和NYSE每日收盘指数,各股票指数数据均有1984个观测点。 在本章节进行的实验中,所选数据集对于训练集、验证集和测试集切分遵循机器学习预测建模研究中常用的0.64、0.16和0.2的比例。为进一步分析和比较所提预测模型在提前单步(One-step-ahead)预测与提前多步( Multi-step-ahead)预测上的性能表现,本章节在各数据集上均进行了不同提前时步的预测建模实验。具体地,AR1数据集上的预测时长H分别为1、3、6,输入步长T为15;BTC数据集上的预测时长H分别为1、3(六小时)、6(半日),输入步长T为24(两日);ILI、BRENT-weekly和WTI-weekly数据集上的预测时长H分别为1、4(一个月)、8(两个月),输入步长T为26(半年); BRENT-daily、WTI-daily、S\&P 500、NASDAQ、DJI和NYSE数据集上的预测时长H分别为1、5(一周)、10(两周),输入步长T为30(六周)。 \subsection{对比模型选择} % \subsubsection{RVFL, IELM和SCN} 为比较ESM-CNN预测模型与传统统计预测模型的性能差异,将输入时间序列最后时刻观测值作为预测值的Naive预测方法、自回归移动平均(Autoregressive Integrated Moving Average,ARIMA)方法\cite{floresEvolutive2012}和Holt’s Winters季节指数平滑(Holt’s Winters Seasonal Exponential Smoothing,HWSES)方法\cite{chatfieldHoltwinters1978}被选为对照组模型以验证所提模型的性能优势。 为比较ESM-CNN预测模型与经典随机映射预测模型的性能差异,RVFL\cite{igelnik1995stochastic}、ILEM\cite{huang2006universal}和SCN\cite{wang2017stochastic}这三种典型随机多层感知机(SMLP)被选为对照组模型。 RVFL、IELM和SCN的随机映射参数(如随机初始化隐藏层权重的分布参数、容忍水平等)与所提ESM-CNN模型参数保持一致,同时RVFL、IELM和SCN中的隐藏层神经元数量与ESM-CNN中卷积核数量保持一致以更好地控制实验变量。 此外,为比较ESM-CNN预测模型与梯度下降训练方法下DNN预测模型的性能差异,CNN、循环神经网络(Recurrent neural network,RNN)以及结合CNN与RNN优势的卷积循环神经网络(Convolutional recurrent neural network,CRNN)这三种代表性神经网络被加入对照组模型中。具体地,本章节提供了基于一种网格搜索(Grid-search)确定隐藏层卷积核数量的单卷积层CNN(GS-CNN)作为CNN的实现模型。针对RNN结构,本章节复现了Salinas等\cite{salinasDeepAR2020}提出的一种基于自回归长短时记忆(Long short term memory,LSTM)网络结构的RNN预测模型DeepAR,该模型在多项现实预测任务中表现出优异性能。此外,本章节复现了Livieris等\cite{livieris2020cnn}基于CNN与RNN结构提出的卷积长短时记忆(Convolutional long short term memory,CLSTM)网络,作为CRNN结构的有力实现。 GS-CNN,DeepAR,和CLSTM预测模型的超参数(如梯度下降优化算法、学习速率和训练迭代次数等)基于通行的试错(Trial and error)策略予以确定。 进一步地,为验证所提ESM-CNN预测模型中误差反馈构造策略与卷积核结构选择方法的必要性,本章节针对这两个要素进行了消融实验研究。 通过移除卷积核选择方法保留误差反馈随机建模策略,建立一种消融的误差反馈随机卷积神经网络(Error-feedback stochastic convolutional neural network,ES-CNN)。通过完全移除误差反馈策略与卷积核选择方法,构造出Yu et al.\cite{yuImpact2019}所提出的单纯随机卷积神经网络(Stochastic convolutional neural network,Stoc-CNN)。 在本章节所设置的所有预测任务中,ESM-CNN的最大卷积核数量$C_{\max}$设为100以保证模型收敛。基于实验经验,卷积核权重的随机初始化分布$[-\lambda,\lambda]$设为$[-0.5,0.5]$,备选卷积核的宽度选择范围设为$ \{K_{m,s}\} ^S_{s=1} = \{T/3, T/4, T/5, T/6\}$,为简化卷积核结构搜索问题,参考相关研究\cite{zhao2017convolutional},池化操作宽度固定为$K_p=3$。同一宽度的备选卷积核数量为30。 为保证消融实验的公平性,Stoc-CNN、ES-CNN和ESM-CNN的随机设置参数与卷积核数量均保持一致。 \subsection{评价指标设置} 为多角度评价所提模型与进行对照实验研究,本章节选取了包含百分比误差与绝对值误差在内的三种常用预测准确度评价指标\cite{baoPSOMISMO2014,guo2016robust,zhaoDeep2017},分别为:平均绝对百分比误差(Mean absolute percentage error,MAPE),对称平均绝对百分比误差(Symmetric mean absolute percentage error,SMAPE)和根方平均平方误差(Root mean square error,RMSE)。其计算过程分别如\autoref{eq:mape}、\autoref{eq:smape}和\autoref{eq:rmse}所示: \begin{equation} \label{eq:mape} MAPE = \frac1N \sideset{}{_{i=1}^N} \sum \abs{\frac{y_{i} - \hat y_{i}}{y_i}}. \end{equation} \begin{equation} \label{eq:smape} SMAPE = \frac1N \sideset{}{_{i=1}^N} \sum \abs{\frac{y_{i} - \hat y_{i}}{y_i + \hat y_{i}}}. \end{equation} \begin{equation} \label{eq:rmse} RMSE = \sqrt{\frac1N \sideset{}{_{i=1}^N} \sum ({y_{i} - \hat y_{i}})^2 }. \end{equation} 其中,$y_i$和$\hat y_i$分别表示真实值与预测值。 \subsection{实验步骤} 在本章节的实验验证研究中,所选数据集均首先基于Z-score方法\footnote{https://scikit-learn.org/stable/modules/preprocessing.html\#preprocessing-scaler}归一化至标准正太分布,而后按照0.64,0.16和0.2的比例切分为训练集、验证集和测试集。 所提ESM-CNN及所有对照组和消融模型均通过训练集和验证集进行训练与交叉验证。 在生成预测结果计算评价指标时,预测生成结果均先被还原至原有数值范围,再进行预测准确度计算。 最终,在所有预测任务中,本章节均对每一预测模型建模20次,对20次预测建模结果结合MAPE、SMAPE和RMSE指标计算预测准确度平均值,以综合表现预测模型预测准确性与稳定性。 本章节所有实验均基于CUDA 10.1版本的GPU加速Pytorch框架\cite{paszkePytorch2019}、Ubuntu 20.04系统环境、Intel 8700K CPU和Nvidia GTX 1070 GPU环境进行,以保证计算环境的一致性。本章节的实验设置与算法代码已开源在Github平台\footnote{https://github.com/XinzeZhang/TimeSeriesForecasting-torch},以方便研究者复现和开展相关工作。 \section{实验结果与分析\label{sec:esm.ana}} \subsection{预测准确度对比与分析} \cref{tab:app_mape.std,tab:app_smape.std,tab:app_rmse.std}分别展示了ESM-CNN及对照组模型在AR1、BTC和ILI数据集上的MAPE、SMAPE和RMSE平均结果及标准差,以评价不同模型的准确度与稳定性。 在\cref{tab:app_mape.std,tab:app_smape.std,tab:app_rmse.std}中,括号内为模型结果的标准差,越低的标准差表示模型具有越强的预测稳定性。其中,统计模型的0标准差以“-”表示。 每一预测任务中的最优结果通过粗体加星“\(\star\)”的形式进行展示,次优结果通过粗体加以表示。 另外,\cref{tab:app_mape,tab:app_smape,tab:app_rmse}分别展示了ESM-CNN及对照组模型在原油价格与股票指数数据集上的MAPE、SMAPE和RMSE结果,以补充说明所选模型的对比效果。 % \cref{tab:app_mape,tab:app_smape,tab:app_rmse}分别展示了ESM-CNN及对照组模型在原油价格与股票指数数据集上的MAPE、SMAPE和RMSE结果,以补充说明所选模型的对比效果。 \input{float/ch.cnn/std.tex} \input{float/ch.cnn/mape.tex} \input{float/ch.cnn/smape.tex} \input{float/ch.cnn/rmse.tex} % 在\cref{tab:app_mape.std,tab:app_smape.std,tab:app_rmse.std,tab:app_mape,tab:app_smape,tab:app_rmse}中, % 第一列为数据集名称,第二列展示了该数据集上不同预测时长H下的预测任务。第三列至最后一列归类展示了统计模型、梯度下降训练模型以及随机映射模型类别下对照模型与所提模型在各预测任务上的平均结果。 % 平均分值结果越低表示模型具有越准确的预测性能。 基于\cref{tab:app_mape.std,tab:app_smape.std,tab:app_rmse.std,tab:app_mape,tab:app_smape,tab:app_rmse}所示的对照组模型结果,可归纳出以下结论: (1)作为一种新颖的卷积结构SDNN模型,ESM-CNN在本章节选取的人工合成时间序列数据集与真实时间序列数据集上都保持了优秀的预测准确度,展现出ESM-CNN预测模型的良好应用性。 (2)与Naive、ARIMA和HWSES所代表的统计模型相比,ESM-CNN在本章节设置的所有预测任务和所有评价指标上都表现出更优的预测准确度,展现出ESM-CNN预测模型的良好预测性能。 (3)与GS-CNN、DeepAR和CLSTM所代表的先进梯度下降训练DNN预测模型相比,ESM-CNN在本章节设置的绝大部分预测任务和评价指标上取得了更优的预测准确度;在梯度下降训练模型取得最优结果的预测任务中,如ILI H8、BRENT-weekly H1、BRENT-daily H1、WTI-weekly H1和WTI-daily H5, ESM-CNN预测模型也取得了差距很小的次优预测结果,展示出ESM-CNN预测模型与梯度下降训练深度学习预测模型匹敌的预测能力。 (4)与RVFL、IELM和SCN所代表的先进SMLP预测模型相比,ESM-CNN同样在本章节设置的所有预测任务和所有评价指标上都表现出更优的预测准确度,展示出ESM-CNN预测模型在随机映射预测模型中的预测优势。 基于\cref{tab:app_mape.std,tab:app_smape.std,tab:app_rmse.std,tab:app_mape,tab:app_smape,tab:app_rmse}所示的消融模型结果,可归纳出以下结论: (1)仅单纯引入随机映射方法的Stoc-CNN预测模型在本章节选取的所有预测任务和所有评价指标上都表现出显著弱于ES-CNN与ESM-CNN的预测性能,并在多项预测任务中表现出最差的预测准确度,验证了病态问题在全局更新输出权重方式下所导致的预测性能问题。 (2)引入误差反馈随机映射构造策略的ES-CNN预测模型与Stoc-CNN相比,取得了显著的准确度提升,并在大部分预测任务和评价指标中表现出次优的水平,展现出基于误差反馈随机映射策略构造CNN预测模型的有效性与必要性。 (3)与ES-CNN和Stoc-CNN预测模型相比,ESM-CNN在本章节设置的所有预测任务和所有评价指标上都表现出更优的预测准确度,证明了所提贪心选择方法在ESM-CNN预测模型构造过程中的有效性与必要性。 \begin{figure*}[!t] \centering \begin{minipage}[b]{0.43\textwidth} \includegraphics[width = \textwidth]{float/ch.cnn/sili_H1_revise.png} \subcaption{\label{fig:silih1} ILI, $H = 1$ } \end{minipage} \hspace{4em} \begin{minipage}[b]{0.43\textwidth} \includegraphics[width = \textwidth]{float/ch.cnn/sili_H4_revise.png} \subcaption{\label{fig:silih4} ILI, $H = 4$ } \end{minipage} \begin{minipage}[b]{0.43\textwidth} \includegraphics[width = \textwidth]{float/ch.cnn/sili_H8_revise.png} \subcaption{\label{fig:silih8} ILI, $H = 8$ } \end{minipage} \caption{\label{fig:converge} ILI数据集上递归增长随机映射神经网络的RMSE曲线} \end{figure*} \subsection{收敛效果对比与分析} 本章节对比了基于递归增长随机映射构造策略模型(即IELM、SCN、ES-CNN和ESM-CNN模型)的收敛性,以更好评价所提模型的收敛效果。 \autoref{fig:converge}绘制出了ILI数据集上随递归增长随机映射模型随隐藏层神经元或卷积核数量变化所达到的训练集与验证集RMSE曲线。基于该收敛性结果,可归纳出以下结论: (1)同一预测模型在不同预测时长任务上的收敛情况是一致的。 (2)尽管SCN模型在不同预测任务的训练集RMSE上都能做出最快收敛,但通过验证集RMSE曲线可知,SCN模型在进行真实预测建模中出现了明显的过拟合现象,而采用误差反馈策略的IELM模型并没有出现过拟合,但表现出最慢的收敛速度。这一对比结果证明了误差反馈策略解决过拟合问题的有效性,同时也指出了误差反馈策略下MLP结构的性能局限性。 (3)基于卷积结构的ESM-CNN和ES-CNN在所有的验证集RMSE中都表现出比IELM和SCN更快且更低的收敛效果,证明了基于误差反馈随机映射构造CNN预测模型的收敛性与鲁棒性。 (4)与ES-CNN相比,ESM-CNN具备更低的训练集RMSE曲线和测试集RMSE曲线,从收敛性角度再次验证了所提卷积核选择方法的有效性与必要性。 (5)在ESM-CNN与ES-CNN的收敛过程中,预测性能的最大增益明显来自于构造过程的前10步,表现出ESM-CNN具备通过牺牲微小性能换来巨大效率提升的平衡策略,从而使得ESM-CNN具有更加广泛和高效的现实应用性。 进一步地,对于本章实验中\autoref{fig:converge}所显示的SCN与Stoc-CNN过拟合现象以及ESM-CNN与ES-CNN模型的鲁棒性特点,其解释如下:由于SCN与Stoc-CNN均采用最小二乘法全局更新输出权重的方式,使其难以克服现实复杂时间序列中的噪声数据,因此出现了过拟合的现象;与全局更新输出层权重的构造方式相反,ESM-CNN与其消融模型ES-CNN采用基于构造过程预测误差反馈局部更新输出权重的方式,随着卷积核的不断增加,一方面,既有预测误差被不断弥补,使得噪声数据的影响被不断削弱,另一方面历史加入的卷积核权重及其链接的输出权重被固定住,这些固定的权重在一定程度上充当了正则化的作用,使得新加入卷积核的输出权重$L_2$范数越来越小,并在整体上小于SCN与Stoc-CNN,从而使模型具有更高的稳定性与鲁棒性。 \subsection{建模效率对比与分析} \input{float/ch.cnn/time.tex} 此外,本章节对比了所选模型中神经网络预测模型的单次平均建模时间,以更好评价所提模型的实际建模效率。 \autoref{tab:time}展示了所选神经网络预测模型在AR1、BTC和ILI数据集上以秒为单位的单次平均建模时间。其中,因RVFL与Stoc-CNN的构造过程仅由随机初始化隐藏层权重与闭式求解输出权重两部分组成,在当前实验环境下,模型构造时间可被省略,因此用“-”进行标记。 通过对比卷积结构的训练DNN模型(即GS-CNN)与循环结构的训练DNN模型(即DeepAR和CLSTM),GS-CNN模型具有更高的建模效率,其用时约是纯循环结构模型DeepAR的三分之一,约是堆叠卷积与循环结构模型CLSTM的二分之一,验证了卷积结构的效率优势。 进一步地,结合前文的预测结果可知,ESM-CNN与ES-CNN仅需相对极少的建模时间即可达到与梯度下降训练深度学习预测模型媲美甚至更好的预测性能,同时参考\autoref{fig:converge}所示的收敛性结果可知,该建模时间仍有相当压缩空间以进一步提高建模效率,证明了误差反馈随机映射方法构造CNN模型的建模高效性。 同时,ESM-CNN与ES-CNN相比,增加的卷积核选择过程在未明显增加建模时间的情况下显著提高了预测性能,证明了ESM-CNN的建模优势。 \section{小结\label{sec:esm.conc}} 面对预测建模技术研究中卷积结构SDNN预测模型的构造与自适应优化问题,针对已有方法的诸多不足,本章提出了一种新颖的ESM-CNN预测模型,基于误差反馈随机映射建模策略和卷积参数贪心选择方法,构造出一种兼具优异建模效率与预测性能的卷积结构SDNN预测模型,并证明了其收敛性。 本章节以经典人工时间序列数据、比特币价格、流感阳性样本率、国际原油价格、股票指数等多项真实时间序列数据为预测对象,进行多个预测时长下的预测任务,基于不同预测准确度评价指标,通过预测准确度、收敛性和建模效率等多个视角的对比分析验证了所提ESM-CNN模型的性能与效率,结果表明该模型是一种兼具优秀预测性能与建模效率的卷积结构SDNN预测模型。有望基于该模型为比特币价格预测、流感阳性样本率预测、国际原油价格预测和股票指数预测等管理应用提供相比传统统计方法和传统随机映射方法更为精准的预测结果,同时可利用其远优于训练深度学习预测方法的建模效率优势,为时变或在线环境下的复杂预测管理应用问题提供可能的解决方案。 ================================================ FILE: body/chapter/intro.tex ================================================ %%% mode: latex %%% TeX-master: t %%% End: \chapter{绪论} \section{研究背景与意义} 预测问题是经济生活、工业生产、公共卫生和能源系统等众多应用领域的重要问题。若能基于观测的现实预测出未来将要发生的现象,则能为控制或决策提供参考。自然,科学准确的预测是正确决策的重要依据。 然而,现实数据往往是复杂且动态的,难以通过某一确定性的物理定律或因果关系精确推算出未来的状态。因此需要考虑依赖于时间的现象,基于数据自身的历史观测值,建立预测模型从而估计和推测出未来状态,这样处理预测问题的方式被称为时间序列预测。其中,根据数据发生的历史时间顺序所得到的序列观测值即是时间序列数据。 在现实背景下,时间序列数据常常呈现出规模庞大、模态多样和关联复杂等性质,表现出感知度量难、特征融合难和模式挖掘难等问题。 对于这种动态机制不确定的数据,如何建立一种建模技术来解决大规模时间序列数据非平稳状态下的动态性预测问题,对学界和业界都具有重要的理论价值和实际意义。 % \section{研究意义} 在预测科学的发展进程中,各种预测技术和方法推陈出新。 其中,以卷积神经网络(Convolutional neural network,CNN)和循环神经网络(Recurrent neural network,RNN)为代表的深度学习(Deep learning,DL)预测建模技术成为该领域近年来的研究热点。深度学习是一种大数据背景下基于深度神经网络(Deep neural network,DNN)的机器学习(Machine learning,ML)建模思想,着重研究样本数据的内在规律与表示层次~\cite{hintonReducing2006}。相较于传统的统计机器学习方法,即基于统计模型依赖经验选取特征的浅层学习方法,如支持向量机(Support vector machine,SVM)和多层感知机(Multilayer perceptron,MLP)等,DNN采用卷积池化或循环记忆的网络结构,在成功解决了复杂网络结构下训练初始化~\cite{heDelving2015,glorotUnderstanding2010}与梯度不稳定问题~\cite{mikolovContext2012,pascanuDifficulty2013}后,构造的模型具有优异的特征学习能力和预测性能,并根据网络结构的不同,在面对海量时间序列数据时表现出不同的效率与性能侧重优势。 例如,基于卷积结构的DNN(即CNN)预测模型通过卷积与池化,在降低网络参数的同时进行局部特征的抽象表征,使得模型具备良好的学习能力与效率优势;而基于循环结构的DNN(即RNN)预测模型考虑输入数据的时序关系,通过历史的隐藏特征表示与当前的输入数据特征,迭代完成样本的时序特征抽象学习,使得模型具备优异的预测性能。因此,近年来涌现出大量基于深度学习建模技术的预测应用研究,这些技术方法在多项应用领域,如金融市场~\cite{wuImproved2019,zhaoDeep2017,sezerFinancial2020},能源市场~\cite{caiDayahead2019,lindbergLongterm2019,shiDeep2018}和交通管理~\cite{laptevTimeseries2017,wangTraffic2016,xiaoShortterm2019}等,取得了显著的预测效果,表现出良好的应用前景。 尽管深度学习预测建模技术在管理领域中得到不断推广与应用,但研究表明,深度学习模型与浅层学习模型一样受到多种技术因素的影响(如神经网络结构,输入选择和输出策略等)~\cite{sezerFinancial2020,lindbergLongterm2019}。在现实的时间序列预测任务中,这些在其他领域(如图像识别、目标检测、文本分类和机器翻译等)展现出优异性能的深度学习算法会因不恰当的模型参数设置而无法表现出预期性能。此外,深度学习模型普遍依赖梯度下降(Gradient decent,GD)方法~\cite{sutskeverImportance2013,kingmaAdam2015,reddiConvergence2018,allen-zhuConvergence2019,loshchilovDecoupled2019}多次迭代训练其权重参数以优化其预测性能。同时,现有的深度学习预测建模技术普遍依赖人工经验来解决模型神经网络结构设计、参数设置和特征选择等模型选择问题,使得研究人员与从业人员不得不付出高昂的计算开销来摸索与尝试合适的模型参数与输入特征,降低了深度学习建模技术在时间序列预测问题中的应用效率与实际性能。因此,高效解决深度学习预测建模技术中的模型选择问题,以探索和提高其在现实典型时间序列情景中的预测性能和学习效率,是发展时间序列深度学习预测模型及其应用研究中的重要内容。 与梯度下降方法的迭代学习机制不同,随机映射是一种采用非迭代学习机制的神经网络建模方法~\cite{scardapaneRandomness2017,liInsights2017,wang2015jiyu,shen2018jiyu}。随机映射方法通过随机初始化并固定神经网络输入层权重与隐藏层权重,结合闭式求解算法确定输出层权重,构造出随机(Stochastic)神经网络模型。与梯度下降方法构造的训练(Trained)神经网络模型相比,随机神经网络模型具有极低的计算开销、优异的学习效率与良好的非线性表达能力。基于随机映射方法,已发展出极限学习机(Extreme learning machine,ELM)~\cite{shen2017jiyu}、随机向量函数链接网络(Random vector version of the functional-link,RVFL)~\cite{fu2021jiyu}等神经网络学习技术,并在时间序列预测任务中得到了广泛应用~\cite{scardapaneRandomness2017,caoReview2018,tanakaRecent2019}。 然而,基于随机映射的深度神经网络,即随机深度神经网络(Stochastic deep neural network,SDNN),其预测建模技术研究却较未深入。一方面,既有方法多聚焦于随机映射方法的直接应用~\cite{yuImpact2019,huForecasting2020,sunReview2020,hu2021jiyu}或是对现有SDNN模型的组合集成~\cite{wang2018effective,lv2018stacked,lv2019jiyu};另一方面,随机映射方法在大幅提升建模效率的同时,使得所构造的SDNN模型的预测性能对网络结构与参数设置更加敏感,且由于与梯度下降方法在神经网络模型权重参数确定机制上的本质差异,使得传统神经网络建模技术下的模型选择方法对于SDNN预测模型而言适用有限。 此外,SDNN预测模型的模型选择对象及问题,在以卷积和循环为代表的不同特定神经网络结构实现方法下,呈现出个性且复杂的特点。 例如,基于卷积结构的SDNN预测模型在进行模型选择时,区别于传统的训练CNN模型,在卷积结构SDNN模型由多个卷积核组成的随机卷积层中,每个随机卷积核的结构及权重分布都可以是不同的~\cite{zhangErrorfeedback2021};再如,基于循环结构的SDNN预测模型在进行学习建模时,每个循环节点都可生成当前输入的对应目标输出值,区别于传统的训练RNN模型,随机映射方法下其输出权重的闭式求解需考量这些节点的选取与否。 这些特性问题使得基于SDNN的预测建模技术需要考虑不同神经网络结构实现下的方式特点,建立针对且有效的模型选择方法,以更好提升SDNN模型预测效能。 同时,SDNN建模技术在不同结构实现下的特定优化问题外,亦存在区别于传统机器学习方法与随机浅层神经网络模型的共性优化问题。例如,卷积层的单卷积核多通道输入能力\cite{wangTraffic2016}和循环层的单循环节点多时步输入能力\cite{bandaraForecasting2020}均可将单变量时间序列预测建模中的传统一维输入结构提升为二维输入结构,使得时间序列数据在SDNN预测模型中的特征选择这一关键问题更为复杂。 通过对以上背景的分析可知,有必要进行系统、全面、针对且深入的SDNN预测建模技术研究。基于此,本研究在充分利用DNN拓扑结构优异的特征学习能力和随机映射方法低开销与高效率的建模优势基础上,关注SDNN预测建模技术模型选择的问题与挑战,研究SDNN预测模型构造与优化的创新方法与提升策略。 首先,针对SDNN预测模型在不同典型代表结构下实现下的特定问题,例如SDNN预测模型在基于卷积结构实现时的隐藏结构构造与优化问题以及基于循环结构实现时的输出结构构造与优化问题,分别进行深入且细致地探索,创新提出高效且自适应的随机映射卷积隐藏结构构造方法和循环输出结构优化方法;而后,归纳SDNN预测模型在不同结构实现时的共性优化问题,例如特征选择问题,提出一般结构下的SDNN新型时间序列输入特征选择方法;最后,结合不同深度神经网络结构的特有能力优势,例如卷积结构的局部特征学习能力和循环结构的长期特征学习能力,以及考虑SDNN预测建模的整体优化问题,提出混合结构的SDNN预测模型生长与优化方法,构造出强健、鲁棒且准确的SDNN预测建模技术框架。 本研究旨在建立基于随机映射的深度学习预测建模方法,通过结合随机映射方法的建模效率优势与DNN模型的预测性能优势,聚焦既有SDNN预测模型方法的关键问题与挑战,创新提出一系列SDNN预测模型构造与优化方法,并用于解决管理应用中多种复杂现实时间序列预测问题,以期为决策提供更为高效且智能的支持。 在理论层面,本论文将深入研究不同神经网络结构下的SDNN预测模型和新的理论分析框架,如构建基于卷积结构和混合结构的SDNN预测模型的预测误差收敛性分析框架,直观理解SDNN预测模型的构造与决策逻辑。这些新颖的模型与理论分析框架的提出有助于丰富既有SDNN预测建模技术研究的理论体系,具有一定的理论意义。 % ,为完善DNN预测模型的解释性研究提供一定支撑。 在方法层面,本论文将构造多套预测模型构造与优化方法,包括适用于卷积结构、循环结构、一般结构至混合结构SDNN模型的优化技术,形成从特定到一般再到混合的综合技术体系与框架,为SDNN预测建模技术的复杂模型选择问题提供新颖的方法与思路。这些新方法的提出将拓展既有SDNN预测建模技术研究的方法体系,为完善SDNN预测模型的模型选择问题研究提供一定支撑。 在现实层面,本论文将立足于现实时间序列预测任务的多个场景,包括公共卫生领域中的流感阳性样本率预测任务、能源市场中的原油价格预测任务、金融市场中的股票指数预测任务、大气污染中的PM2.5预测任务、电力系统中的电力负荷与电力价格预测任务等。基于模型在不同场景下的预测结果和优势特点,如基于卷积结构SDNN模型的效率优势和基于混合结构SDNN模型的性能优势,可为管理部门制定决策提供效能层面的不同支撑,对SDNN预测建模技术的应用具有良好的现实意义。 \section{研究面临的关键问题} 针对时间序列预测建模这一重要问题,基于SDNN的预测建模技术因其高效的构造效率和良好的预测潜能受到了广泛关注和应用,但既有方法面临着如下关键问题: (1)如何构建基于卷积结构SDNN预测模型的新颖构造及自适应优化方法,以解决已有卷积结构SDNN预测建模技术中参数选择时的人工依赖、输出权重求解时的病态矩阵和预测过程的不稳定性,是本研究的关键问题。 SDNN模型预测性能对于隐藏结构的设计与参数设置以及输出权重的闭式求解方式非常敏感,这一现象在卷积结构的实现中尤为明显。原因在于,SDNN建模方法下接隐藏层的输入权重与隐藏权重是随机且固定的,输出层权重是基于隐藏特征表征和预测目标的映射通过闭式求解予以确定。更具体的,一方面在卷积结构的SDNN模型实现中,输入层与隐藏层权重统一地被卷积层权重所取代,同时卷积核权重的随机设置与其结构参数息息相关,使得卷积结构SDNN预测模型性能敏感于卷积层结构参数及随机权重,然而既有SDNN的卷积实现方法在进行隐藏卷积结构构造时依赖于人工试错,缺少自适应确定隐藏结构及参数设置的构造与选择方法;另一方面,同时,随着卷积核数量的增加会导致输出层读取的隐藏特征维度呈倍数增大,使得既有的输出层权重求解方法出现病态矩阵问题(Ill-posed problem),从而降低了输出层权重的求解质量,严重影响了模型的拟合能力和预测稳定性。因此,有必要设计一种能够自适应确定隐藏卷积结构及参数,兼具良好预测性能和高效建模效率的SDNN卷积结构实现方法,以更好发挥卷积结构的建模效率优势。 % 通常而言,SDNN模型对时间序列数据的表征通过隐藏层结构的随机映射和输出层的特征学习共同完成。随机映射方法下链接隐藏层的输入权重与隐藏权重是随机且固定的,输出层权重是基于隐藏特征表征和预测目标的映射通过闭式求解予以确定,因此。既有SDNN的卷积实现方法在进行隐藏卷积结构构造时依赖于人工试错,缺少自适应确定隐藏结构及参数设置的构造与选择方法;同时,随着卷积核数量的增加会导致输出层读取的隐藏特征维度呈倍数增大,使得既有的输出层权重求解方法出现病态矩阵问题,从而降低了输出层权重的求解质量,严重影响了模型的拟合能力和预测稳定性。因此,有必要设计一种能够自适应确定隐藏卷积结构及参数,兼具良好预测性能和高效建模效率的SDNN卷积结构实现方法,以更好发挥卷积结构的建模效率优势。 (2)如何构建基于循环结构SDNN预测模型的新颖构造及自适应优化方法,以解决已有循环结构SDNN预测建模技术所忽视的循环隐藏特征表示与预测目标的复杂对应问题,是本研究的关键问题。 区别于直接对局部特征进行高效前馈表征的卷积结构,SDNN循环结构实现方法则更侧重于捕捉与学习时序性特征,利用循环构造当前时间序列观测值与目标值间的映射完成预测建模。在此过程中,每个循环节点都将生成当前读取输入值的对应隐藏特征表示,建立出隐藏特征表示与拟合目标的时间序列对应队列,基于队列内的隐藏特征表示与拟合目标的对应关系闭式求解输出权重。然而,由于时间序列数据的复杂性,队列内的匹配关系并不一定都有助于得到良好的输出权重解。在进行匹配选取时,既有方法采用直接丢弃初始区间的做法,忽视了时间序列隐藏特征表示与拟合目标匹配队列的复杂性,从而降低了输出层权重的求解质量,限制了SDNN循环结构实现方法的时序特征学习能力。因此,有必要设计一种能够自适应确定循环输出结构及参数,兼具良好预测性能和高效建模效率的SDNN循环结构实现方法,以更好发挥循环结构的预测性能潜力。 (3)如何将特征选择与深度神经网络结构相结合,以利用已有SDNN预测模型特征选择方法所忽视的时步多维度输入能力,提出适用于以卷积和循环结构为代表的一般结构SDNN预测模型的自适应特征选择方法,是本研究的关键问题。 与传统机器学习方法或浅层神经网络方法不同,以卷积结构和循环结构为代表的DNN因其隐藏结构的特殊性,如卷积层中的单卷积核多通道结构和循环层中的单循环节点多神经元输入结构,使得DNN预测模型能够将传统的单变量输入的一维特征结构表示在每个输入时步节点囊括入邻近的时域特征,从而将传统一维输入特征作为特例,呈现出复杂的二维输入特征结构表示。此外,相较梯度下降方法训练的DNN预测模型,随机映射方法内在随机机制在提升建模效率的同时,一定程度上降低了模型直接对时间序列原始输入特征进行抽象学习的能力,因此更需要从复杂的输入中挖掘与选择出合适的特征以提升模型预测性能。然而,既有的SDNN预测模型特征选择方法未考虑时间序列输入数据的二维结构性质,仍在一维输入结构表示上进行特征取舍,削弱了特征选择对于SDNN预测模型性能的提升能力。因此,有必要设计一种种能够自适应确定输入特征结构及取舍的SDNN预测模型特征选择方法,以进一步提高模型的预测精度。 (4)如何将不同深度神经网络相结合,以消除已有SDNN预测建模方法固守于某一特定结构的局限,提出可包纳卷积结构、循环结构及其他DNN结构的混合结构SDNN预测模型构造与自适应优化方法,是本研究的关键问题。 面对复杂不同的时间序列预测任务,基于单一结构主体的SDNN预测模型可能难以完全胜任。事实上,SDNN预测模型在不同的神经网络结构实现下侧重不同的特征学习能力,如卷积结构对局部特征的学习能力和循环结构对时序特征的学习能力。故需要混合不同深度神经网络结构,以融合不同结构的性能优势,使SDNN预测模型具备综合的学习能力。然而,既有的SDNN预测建模方法局限于单一结构实现。同时,混合结构的SDNN预测模型对模型参数的选择与建模稳定性提出了更高要求。因此,有必要设计一种可兼容不同种类深度神经网络结构,能够自适应确定隐藏结构组成类别及对应参数,稳健且鲁棒的混合结构SDNN预测模型构造与选择方法,以更好解决时间序列预测问题。 \section{研究内容与创新点} 本文研究目标如下:以精准和高效的时间序列预测为目标,基于随机映射方法与深度神经网络预测模型,构造自适应确定模型参数与特征,准确、高效且稳健的SDNN预测建模技术,以适应复杂不同的时间序列预测场景需要,为管理决策提供更为快捷、智能、安全和稳定的支持。为此,本研究探索SDNN预测建模技术既有方法的关键问题,创新提出对应解决方法和改进策略,利用主流人工时间序列数据和多种现实时间序列数据验证所提方法策略的有效性,以期具备一定的理论意义和良好的现实意义。 \subsection{研究内容} 本研究以高效准确时间序列预测为研究目的,以SDNN预测建模技术为主要研究方法,其主要研究内容如下: (1)基于卷积结构的SDNN预测模型构造与优化方法 既有SDNN预测模型的卷积结构实现方法依赖于人工设计隐藏结构,其全局更新输出权重的方式易产生不稳定的预测结果,使得随机映射卷积结构的效率优势意义有限。基于此,提出一种基于误差反馈的SDNN预测模型卷积结构构造与优化方法,采用递归添加随机卷积核的方式,逐步构造隐藏结构,通过误差反馈机制局部更新输出权重以此稳步降低模型预测误差,使得所构造模型具有理论保证的收敛误差;同时,利用贪心算法解决卷积结构参数与随机权重选择问题以增强模型感知不同尺度局部特征的能力;最后,结合人工合成时间序列数据、比特币价格、流感阳性样本率、国际原油价格和股票指数时间序列数据,验证所提方法的准确性、收敛性和建模效率。 (2)基于循环结构的SDNN预测模型构造与优化方法 既有SDNN预测模型的循环结构实现方法在采用闭式求解算法计算输出权重时,一般采用直接丢弃循环队列初始区间内隐藏状态与目标间映射关系的方式,这种做法未考虑参与求解的隐藏特征表示与目标队列的复杂关系,限制了随机映射循环结构的预测建模潜能。基于此,考虑堆栈结构、线性解码器结构和循环解码器等不同循环输出结构的实现形式,提出一种基于状态遮掩的SDNN预测模型循环结构构造与优化方法,利用粒子群优化算法对隐藏特征表示与目标队列进行选择以增强模型感知复杂时序特征的能力。同时,结合人工合成时间序列数据、电力负荷和室外温度时间序列数据,从预测准确度和结果稳定性等方面验证所提方法的有效性。 (3)SDNN预测模型的二重特征结构选择方法 既有SDNN预测模型特征选择方法局限于一维的时步单输入结构,其直接对各时步输入特征进行选择的方式未考虑深度神经网络结构对输入时间序列数据的时步多维度结构表示能力,限制了SDNN预测模型的特征学习能力。基于此,提出一种基于输入特征结构变换的二重特征结构优化方法,对输入时间序列的输入步长、时步维度和输入时步加以优化,利用树状帕尔森估计算法优化“时步维度-时步掩码”的输入特征结构元组,完成模型的特征结构选择,进一步提升SDNN模型的时间序列数据学习能力与预测精度。同时,结合人工合成时间序列数据、电力负荷和电力价格时间序列数据,以及不同深度神经网络结构验证所提方法的有效性。 (4)SDNN预测模型的混合结构生长与优化方法 既有SDNN预测模型的构造与选择方法局限于单一的深度神经网络结构,而不同类别的神经网络结构侧重不同的时间序列特征学习能力,现有方法难以主动适应复杂不同的时间序列预测场景。基于此,提出一种基于混合结构的SDNN预测模型生长与优化方法,通过迭代添加不同种类随机深度子网络构造隐藏结构,引入正则项改进误差反馈生长策略以此确定子网络输出权重,建立预优化、子训练和调正则的三阶段优化策略对子网络参数及权重进行优化,以此提升模型的学习能力、预测精度和稳定性。同时,结合人工合成时间序列数据、空气污染和电力负荷时间序列数据,验证所提方法的有效性、必要性、稳定性和收敛性。 \subsection{研究创新点} 基于对面向时间序列预测问题的SDNN预测建模技术理论与应用研究,本文主要创新点如下: 1)针对卷积结构SDNN预测模型中卷积层参数选择及输出权重病态矩阵难题,通过构造误差反馈随机建模构造策略和建立贪心搜索选择方法,提出基于卷积结构的SDNN预测模型构造与优化方法。其创新之处包括以下方面: (1)通过代数推导证明了基于该方法所构造的预测模型具有随着卷积核的增加而单调下降的预测误差,以此保证了所提方法的收敛性,且其确定的输出权重与既有方法相比具有更小的$L_2$范数,以此提升了模型的预测稳定性; (2)区别于既有方法仅能用相同宽度的卷积核构造单卷积层,通过贪心选择由不同卷积核宽度组成的备选集,使得模型能够在迭代构造模型的过程中自适应确定卷积参数,其构造的单卷积层具备不同宽度的卷积核,使模型借助单卷积层具备不同尺度局部特征的学习能力; (3)在人工合成数据、流感阳率数据、国际原油价格数据和股票指数数据上的实验表明,与梯度下降训练的深度神经网络预测模型相比,基于本方法所构造的模型在具备相近甚至更优的预测准确度同时具备极高的建模效率,验证了所提方法的有效性。 2)针对循环结构SDNN预测模型中循环隐藏特征表示与预测目标间的复杂关系处理难题,通过考虑多种SDNN循环输出结构实现方法和利用粒子群优化算法,提出基于循环结构的SDNN预测模型构造与优化方法。其创新之处包括以下方面: (1)在既有随机映射循环输出结构实现方法外,借鉴梯度下降训练循环神经网络输出结构提出多种随机映射循环输出结构实现方法,并实验分析不同输出结构间的异同优劣,为随机映射循环输出结构的实现应用提供更多支撑; (2)区别于既有现方法强制丢弃一定初始区间内所有的隐藏状态表示,通过对循环结构每个循环节点生成的隐藏状态表示及目标施加状态掩码,借助粒子群优化方法进行循环队列完整区间内的隐藏状态表示取舍,使得模型能够更好学习输入时间序列数据的时序性特征,降低模型输出权重的学习难度,提升模型的预测性能; (3)在人工合成数据、电力负荷数据和室外温度数据上的实验表明,与已有的SDNN循环输出结构优化方法相比,所提方法具备更好的多步预测准确度和稳定性,验证了所提方法的有效性。 3)针对以卷积和循环结构为代表的一般SDNN预测模型多输入时步多时步维度特征选择难题,通过构造二维输入特征结构和利用树状帕尔森估计算法,提出了SDNN预测模型的二重特征结构选择方法。其创新之处包括以下方面: (1)区别于既有SDNN特征选择方法局限于一维输入结构,且仅利用时步掩码对输入特征进行选择的方式,基于以卷积结构和循环结构为代表的深度神经网络时步多维度特征读取能力,利用滑动窗口构造出时步多维度的新颖输入特征结构,丰富模型输入信息; (2)将既有的多输入特征选择方法作为被囊括的特例,通过树状帕尔森估计算法对输入的二维特征结构时步维度和时步掩码参数同时进行优化,使得模型能够根据不同的时间序列任务在每个时步输入节点丰富邻近特征信息的同时,去除冗余和嘈杂的输入时步节点,降低模型抽象特征的学习难度,提升模型的预测性能; (3)在人工合成数据、电力负荷数据和电力价格数据上的实验表明,与已有的SDNN特征选择方法相比,基于所提方法构造的模型具有更优的预测性能,验证了所提方法的有效性。 4)针对混合卷积、循环和其他深度神经网络结构的SDNN预测模型构造与自适应优化难题,通过改进误差反馈生长策略和建立三阶段优化算法,提出了SDNN预测模型的混合结构生长与优化方法。其创新之处包括以下方面: (1)区别于既有SDNN预测模型传统的单一隐藏神经网络结构,构造混合结构的生长策略,通过矩阵分析证明了基于该策略所构造的预测模型随着不同结构子网络的加入具有单调下降的预测误差,以此保证了所提方法的收敛性,且通过向输出权重的计算过程引入正则项,避免了既有随机映射方法更新输出权重时可能遇到的病态矩阵问题和过拟合问题,提升了模型的鲁棒性; (2)区别于既有SDNN参数优化方法仅对部分参数进行选择的做法,提出预优化、子训练和调正则的三阶段优化方法对定义子网络的结构参数、输入与隐藏权重参数,以及输出权重进行完整优化,使得模型能够根据不同的时间序列任务自适应地生长神经网络结构与选择参数,进一步提升模型预测性能; (3)在人工合成数据、空气污染数据和电力负荷数据上的实验表明,与已有的先进SDNN预测模型相比,基于所提方法构造的模型具有更优的预测性能,验证了所提方法的有效性。 % \clearpage \begin{figure}[!t] \centering \includegraphics[width=0.8\linewidth]{float/ch.intro/thesis_arch.png} \caption{\label{fig:body}本研究技术路线} \end{figure} \section{技术路线与论文结构} \subsection{技术路线\label{sec:thesisRoad}} 本研究以时间序列预测问题为背景,结合随机映射方法的建模效率与深度神经网络的学习潜能,基于SDNN预测建模技术进行方法研究和现实应用。 本研究的技术路线如\autoref{fig:body}所示,通过文献研究法分析SDNN预测建模技术的背景、现状与不足,归纳以卷积神经网络和循环神经网络结构为代表的既有SDNN建模方法,从参数优化与特征选择两方面,系统分析其在时间序列预测建模时的模型选择关键优化问题。 首先,针对不同特定代表结构下的SDNN模型参数优化个性问题展开研究,分别构造基于卷积结构的SDNN预测模型构造与优化方法,以及基于循环结构的SDNN预测模型构造与优化方法;而后,将典型且个性的特定结构研究在神经网络结构层面予以推广,关注以卷积结构与循环结构为代表的一般结构下SDNN预测模型的特征选择问题,提出兼容不同深度神经网络结构的二重特征结构选择方法,并进一步考虑混合不同神经网络结构的SDNN模型参数优化问题,提出SDNN模型的混合结构生长与优化方法。 在此技术路线中,结合主流人工合成时间序列数据与多种复杂的现实时间序列数据,通过准确性比较实验、收敛性验证实验和消融实验,结合定量对比与机器学习理论分析,验证所提方法的有效性。 \begin{figure}[!t] \centering \includegraphics[width=0.95\linewidth]{float/ch.intro/thesis_content.png} \caption{\label{fig:body.arch}本论文主要结构} \end{figure} % \clearpage \subsection{论文结构} 全文共七章,主要结构如\cref{fig:body.arch}所示,各章内容如下: 第1章~绪论:介绍了本研究的背景与意义、所面临的关键问题、主要的研究内容与创新点、研究内容间的技术路线及全文结构。 第2章~国内外相关研究综述:介绍了时间序列预测问题的定义、机器学习预测建模技术至深度学习预测建模技术的演进与现状、随机映射方法的动机及随机映射深度学习预测建模技术的现状及不足。 第3章~基于卷积结构的SDNN预测模型构造与优化方法:提出误差反馈随机建模构造方法及贪心搜索参数优化方法,建立出一种高效且收敛的卷积结构SDNN预测模型,结合人工合成数据、流感阳率数据、原油价格数据和金融指数数据的预测问题进行实验验证。 第4章~基于循环结构的SDNN预测模型构造与优化方法:考量多种随机映射循环输出结构及提出基于粒子群优化的状态遮掩优化方法,建立出一种改进的循环结构SDNN预测模型,结合人工合成数据、电力负荷数据和室外温度数据的预测问题进行实验验证。 第5章~SDNN预测模型的二重特征结构选择方法:构造兼容卷积结构与循环结构深度神经网络的时间序列数据二维输入特征结构及提出基于树状帕尔森估计的二重特征结构选择方法,建立出基于改进特征选择的SDNN预测模型,结合人工合成数据、电力负荷数据和电力价格数据的预测问题进行实验验证。 第6章~SDNN预测模型的混合结构生长与优化方法:改进误差反馈生长策略及提出子网络参数的三阶段优化方法,建立出一种准确、收敛且稳健的混合结构SDNN预测模型,结合人工合成数据、空气污染数据和电力负荷数据的预测问题进行实验验证。 第7章~总结与展望:总结本研究的主要内容、不足之处及改进方向。 其中,第3章至第6章为本文的主要研究内容章节,其逻辑关系在于以下方面: (1)第3章与第4章为并列关系,该两章主要研究内容是第5章与第6章研究内容的基础。具体地,本研究聚焦基于随机映射的时间序列深度学习预测建模技术,卷积结构和循环结构作为既有深度神经网络的代表结构,本文第3章与第4章分别针对深度神经网络基于随机映射方法在特定于卷积结构和循环结构实现下的构造与优化问题展开研究,解决了既有卷积结构实现方法的性能瓶颈,改进了既有循环结构实现方法的输入输出映射,提升了在卷积结构和循环结构这类特定深度神经网络结构实现上的SDNN预测模型准确性。 (2)基于输入特征选择视角,第5章是对第3、4章内容的改进。具体地,凝练第3章与第4章所述SDNN卷积结构和循环结构对时步多维度输入能力的支持共性,设计了兼容卷积结构和循环结构的SDNN预测模型二重特征结构选择方法,突破了既有SDNN预测模型特征选择方法在一维输入结构上的局限,提升了基于卷积结构和循环结构的一般深度神经网络结构下的SDNN预测模型准确性。 (3)基于整体参数优化视角,第6章是对第3、4章内容的改进。具体地,将第3章与第4章所述SDNN卷积结构和循环结构作为超参数控制下的子网络结构状态,提出自适应混合多种不同特定类型子网络的SDNN预测生长策略,建立对子网络在生长过程中超参数、编码过程权重参数和生成过程权重参数的整体参数优化方法,进一步提升了自适应选择卷积结构和循环结构等混合深度神经子网络结构下的SDNN预测模型准确性。 % 第六章 总结与展望:本章对全文的研究工作进行总结,指出本文研究的不足和未来的展望。 % % \section{课题来源} % % 本课题来源于: % % 国家自然科学基金面上项目:基于多输出支持向量回归的预测技术研究(立项时间:2016-01,项目编号:71571080)。 % % 国家自然科学基金面上项目:大数据环境下基于计算智能的预测建模技术及其在电力负荷预测中的应用(立项时间:2019-01,项目编号:71871101)。 % % 国家电网公司华中分部科技项目:华中区域共享型电力交易与服务平台关键技术研究(立项时间:2020-03,项目编号:52140019000U)。 ================================================ FILE: body/chapter/overview.tex ================================================ \chapter[国内外相关研究综述]{国内外相关研究综述} \section{时间序列预测研究综述} 预测建模问题是气象水文~\cite{mudelseeTrend2019},公共卫生~\cite{chimmulaTime2020},电力系统~\cite{qiuEmpirical2017}和金融市场~\cite{niuDeveloping2020}等众多领域进行管理决策时的重要问题。例如,在电力系统的运行中,电力管理部门与发电企业需要预知未来时间的区域电力负荷、火电燃煤价格、风能光伏出力等信息,从而调整电力生产与配送电计划、燃料购买与存取用计划以及电力价格定价策略等决策,以确保电网安全、稳定、经济和高效的运行~\cite{hu2015jiyu};用电企业则需要预知未来的电力价格,从而调整工业生产计划,以降低企业用能成本,维持电力交易市场的稳定\cite{hongEnergy2020}。 如果能够建立一种模型以精准描述现实现象发生的规律,如构造区域电力负荷变化规律的确定性函数,则能够正确推算出未来的状态。然而,在复杂且动态的现实背景下,管理应用领域所关注的现象往往是不确定的,比如,经济的发展、天气的变化、甚至席卷世界的COVID19疫情波动等因素都会使得电力供需发生改变\cite{heHybrid2019,liuPower2022,obstAdaptive2021}。因此,种种未知因素的存在使得难以建立完备的因果关系来给出现象发生的定律,从而不可能建立出一个确定性的模型来精确计算现象的未来表现\cite{boxTime2011}。 尽管如此,依然有可能基于对现实现象的历史观测推导出一个模型,用来计算一定提前期的未来状态。这种基于现实现象自身的历史状态建立未来状态预测模型的方法被称为时间序列预测方法。其中,时间序列是指根据时间发生的历史先后顺序得到的序列形式数据观测值。众多管理领域的核心关注数据都是以时间序列的形式存在,例如气象水文领域中的温度时间序列、公共卫生领域中的流感阳性样本率时间序列、电力系统领域中的电力负荷时间序列和金融市场领域中的股票指数时间序列,等等。这类数据的典型特征便是相邻的观测值之间存在着相互依赖性。时间序列预测正是通过对时间序列观测值之间相互依赖性的分析,发展出动态模型,进而对时间序列的未来状态进行预测。 因此,时间序列预测的本质是一个以历史时间序列输入为自变量,以未来时间序列目标为因变量的函数逼近过程。 如Hewamalage et al.~\cite{hewamalageRecurrent2021}所定义的,时间序列预测问题可以被表示为如何基于过去时刻的时间序列观测值来生成未来时刻时间序列观测值的问题,具体如下: 给定一个历史T步的时间序列向量$\bm{x} = (x_1, \ldots, x_T)$,\(\x \in \mathr^{T}\),以及未来提前H步的时间序列向量$\bm{y} = (x_{T+1},\ldots,x_{T+H})$, \(\y \in \mathr^{H}\),时间序列预测问题可被公式化定义为: \begin{equation} \mathcal{F} : f(\bm x) + \bm e = \bm y. \label{eq:sec.intro.def} \end{equation} \autoref{eq:sec.intro.def}中,$\mathcal{F}$是指时间序列预测模型所逼近的函数。\(f\)是指时间序列预测模型所学习出的预测函数,预测函数\(f\)基于历史$T$步内的时间序列观测值,生成提前$H$步的时间序列观测值\(\hat{\y} = f(\x)\)。$T$是历史的输入步长,$H$是未来的预测时长。\(\e\)表示模型的预测误差向量:\( \e = \y - \hat{\y} \),\(\e \in \mathr^{H}\)。 时间序列预测问题作为普遍存在于不同领域中的重要问题,成为了学术界与工业界长久以来的关注焦点,受到了诸多研究者和从业者的广泛重视。针对时间序列预测问题,已发展出了众多的时间序列预测建模技术。 传统的预测建模技术主要包括以自回归(Auto-regressive,AR)模型~\cite{boxTime2011}、移动平均(Moving average,MA)模型\cite{gershenfeldFuture1993}、自回归移动平均混合(Auto-regressive moving average,ARMA)模型\cite{chuForecasting2009}、整合移动平均自回归(Auto-regressive integrated moving average,ARIMA)模型\cite{floresEvolutive2012}和指数平滑(Exponential smoothing,ES)模型~\cite{gardnerjrExponential1985,gardnerExponential2006}等以统计学为基础的时间序列预测模型。这些模型通过构造历史观测值与相关因素的经验方程,对时间序列进行拟合和预测。例如,ARMA模型通过构造当前时刻滞后一定阶数的自回归项和误差累计项的线性组合,得到提前单步的预测值。 这些传统的预测建模方法通过分析特定领域的时间序列数据特征,建立出合适的预测函数,在一些时间序列预测问题中得到了成功应用。比如,Ediger et al.~\cite{edigerARIMA2007}应用ARIMA模型对土耳其2005年至2020年间的初级能源需求量进行了预测,并在结果中展示了ARIMA模型相对人工预测方法更高的准确度。 Chu\cite{chuForecasting2009}应用ARMA模型对亚太地区的游客数量进行了预测。 Christiaanse\cite{christiaanseShortTerm1971}针对短期电力负荷预测问题建立了一种基于ES的电力负荷预测模型。 然而,这些传统的统计预测方法往往将时间序列数据的输入输出映射视为预定义的函数,因此仅适用于某一特定类型的非平稳过程,而不能有效处理复杂非线性非平稳的时间序列预测问题\cite{boxTime2011}。 基于此,非线性预测的方法和技术成为时间序列预测建模研究中的热点。 其中,基于数据驱动的机器学习方法在时间序列建模预测领域备受关注。 \section{机器学习预测建模研究综述\label{sec:ch.intro.ml}} 对于时间序列预测问题,基于机器学习(Machine learning,ML)的预测建模技术一般是将该预测问题考虑为一种以历史T步的时间序列$\bm{x} = (x_1, \ldots, x_T)$为输入,以未来提前H步的时间序列$\bm{y} = (x_{T+1},\ldots,x_{T+H})$为输出的回归问题,进而构造监督机制下的回归模型予以求解。因此,对于基于机器学习的预测建模技术而言,其拟合过程可表示为: \begin{equation} f(\bm x) + \bm e = \bm y, \quad f \in \{\vartheta, \theta\}\label{eq:sec.intro.ml}. \end{equation} \autoref{eq:sec.intro.ml}中,\(\theta\)表示机器学习预测模型的权重参数集合,\(\vartheta\)表示定义机器学习预测模型与权重学习机制的超参数集合。这里的超参数一般指代模型中权重参数以外的参数。针对不同的模型,\(\vartheta\)具有不同的内涵。例如,支持向量机(Support vector machine, SVM)模型中的\(\vartheta\)包含了核函数(Kernel function)的类型与参数、求解输出权重时的惩罚因子、误差松弛系数等参数,神经网络(Neural Network,NN)模型的\(\vartheta\)则包含了隐藏层的层数、每个隐藏层内神经元的数量以及激活函数的类型、权重训练方法的类型及其参数,等等。 概括而言,\(\vartheta\)定义了机器学习预测模型的结构以及权重参数的训练机制,\(\theta\)表示机器学习模型从输入变换到输出间的权重参数集合。在\(\vartheta\)与\(\theta\)的联合定义下,基于机器学习建模技术的时间序列预测模型\(f\)得以确定,即\(f \in \{\vartheta, \theta\}\)。 自然地,如何选择合适的\(\vartheta\)与\(\theta\)从而建立一个精准的预测模型\(f\)以降低模型预测误差,便是时间序列机器学习预测建模技术研究所关注的核心问题。 围绕此问题,涌现了大量的模型构造方法研究与模型优化机制研究。其中,以SVM和NN为代表的机器学习模型及其优化技术在时间序列建模问题中得到了广泛研究与应用。 在此,为更好介绍基于数据驱动的时间序列机器学习预测建模技术研究,以一组给定包含\(N\)个样本的时间序列数据\(\mathbb{D} = \left\{\left(\x_{n}, \y_{n}\right) \in\left(\mathbb{R}^{T} \times \mathbb{R}^{H}\right)\right\}_{n=1}^{N}\)为例,对基于SVM与NN的预测建模技术与应用展开概述。\(\left(\x_{n}, \y_{n}\right) \)表示第\(n\)个时间序列数据输入与输出的样本对。 \begin{figure}[t!] \centering \includegraphics[width=0.8\textwidth]{float/ch.intro/svm.png} \caption{支持向量机结构示例\label{fig:ch.intro.svm}} % \setlength{\belowcaptionskip}{-10pt} \end{figure} \subsection{基于SVM的预测建模方法} SVM是Vpanik~\cite{vapnikNature2013}基于统计学习理论所提出的一种机器学习方法,通过使用结构风险最小化原则代替传统的经验风险最小化原则,使其能较好解决有限样本的学习问题与过拟合问题。针对非线性不平稳的时间序列建模问题,如\autoref{fig:ch.intro.svm}所示,SVM预测模型通过引入核函数对非线性非平稳的时间序列输入特征\(\x\)进行核化,从而建立时间序列输入特征的高维特征空间表达\(\h_{svm}\),在求解输出权重时采用结合$L_2$正则化的合页损失(Hinge loss)实现结构风险最小原则,以此实现建模预测: % \vspace{-4pt} \begin{align} f_{svm}(\x) &= \w_{out}\h_{svm}, \label{eq:ch.intro.svmA} \\ \h_{svm} &= \phi (\x) \label{eq:ch.intro.svmC}. \end{align} \autoref{eq:ch.intro.svmA}中\(\w_{out}\)表示SVM预测模型的输出权重,\(\h_{svm}\)是SVM基于\autoref{eq:ch.intro.svmC}中核函数\(\phi(\cdot)\)所建立的特征空间状态表示。在经过以\(\mathd\)为训练集的核化后,\(\{\phi(\x_n)\}_{n=1}^N\)是一个维度为\(\mathr^{N\times N}\)的半正定(Positive semidefinite)矩阵,即有,\(\w_{out} \in \mathr^{H\times N}\)。 {\setlength{\abovedisplayskip}{12pt plus 3pt} \setlength{\belowdisplayskip}{12pt plus 3pt} \begin{equation} \w_{out} = \argmin_{\w_{out} }\left(\frac{\vartheta_{c}}{N}\sum^{N}_{n=1}\max(0, \left\lvert \y_n - f_{svm}(\x_n)\right\rvert - \vartheta_{e}) + \frac{1}{2}\left\lVert \w_{out} \right\rVert^2\right) .\label{eq:ch.intro.svmB} \end{equation} } \autoref{eq:ch.intro.svmB}具体展示了SVM预测模型中\(\w_{out}\)通过$L_2$正则的合页损失予以求解的过程。\(\vartheta_{c}\)是指SVM的惩罚因子,用以调节合页损失与正则强度的平衡。\(\vartheta_{e}\)是指SVM的误差松弛系数,用以控制支持向量机的支持向量边界距离,从而增强SVM模型的鲁棒性。 显而易见,SVM预测模型中\(\w_{out}\)的求解问题是以约束条件为线性不等式组,目标函数为凸函数的问题。该问题是一个易于求解的典型二次规划问题。此外,对于时间序列数据\(\mathd\),一般\(N\)远大于\(T\)与\(H\)。由此,对于\(\{\x_n\}_{n=1}^N\)张成维度为\(N \times T\)的低维空间\(\mathbb{X} = \{\x_n\}_{n=1}^N \in \mathr^{N \times T}\)向由\(\{\y_n\}_{n=1}^N\)张成维度为\(N \times H\)的目标空间\(\mathbb{Y} = \{\y_n\}_{n=1}^N \in \mathr^{N \times H}\)的复杂非线性映射\(\mathcal{F}\)求解问题,SVM预测模型通过非线性核函数将其转变为高维特征空间\(\mathbb{H} := \{\phi(\x_n)\}_{n=1}^N \in \mathr^{N \times N}\)向低维空间\(\mathbb{Y}\)做线性映射的简单问题,同时利用\autoref{eq:ch.intro.svmB}中所展示的平衡性,具备了良好的预测性能。 因此,SVM预测模型具有高效、鲁棒、直接与参数易调整等特点,在时间序列预测建模研究中取得了广泛的关注和发展。例如,Fu et al.~\cite{fuEvolutionary2019}提出了一种基于SVM的人民币汇率预测模型;Hu et al.~\cite{huHybrid2015}针对短期电力负荷预测问题提出了一种基于SVM和混合特征提取策略的电力负荷预测模型;Tang et al.~\cite{tangNew2019}基于加权SVM提出了一种股票市场拐点预测模型;Xiong et al.~\cite{xiongCombination2015}将SVM模型与误差修正模型进行结合,提出了一种农产品价格预测模型。针对传统支持向量机的单步输出特点,面向时间序列的多步预测建模问题,Bao et al.~\cite{baoMultistepahead2014}基于传统的SVM模型提出了面向多步预测的多输出支持向量回归(Multiple-ouput support vector regression, MSVR)模型,并实验比较了传统单输出SVM模型与MSVR模型在不同多步预测策略(如迭代预测策略、直接预测策略和多输入多输出预测策略)下的性能表现。 针对时间序列预测建模任务下SVM的参数选择与模型选择问题,基于SVM收敛快,参数调整成本低等特点,Bao and Liu~\cite{baoFast2006}针对时间序列预测问题提出了一种基于快速网格搜索算法的SVM模型选择算法。在此基础上,Bao et al.~\cite{baoPSO2013}提出了基于粒子群优化(Particle swarm optimization,PSO)与模式搜索(Pattern search,PS)相结合的文化基因进化算法(Memetic algorithm,MA),并将其应用在SVM模型选择优化中。Hu et al.~\cite{huShortterm2016}利用PSO搜索SVM参数提出了一种基于PSO-SVM的预测模型。Hu et al.~\cite{huElectricity2013}提出了基于萤火虫算法(Firefly algorithm,FA)与PS算法相结合的MA算法,以此解决SVM电力负荷预测模型的模型选择问题。 \subsection{基于NN的预测建模方法\label{sec:ch.intro.nn}} 相较于SVM预测模型采用核函数方法进行非线性变换,且其输出权重具有闭式解的特点,基于神经网络的预测模型使用从输入层(Input layer)到隐藏层(Hidden layer)的非线性映射,对输入的非线性时间序列特征进行非线性变换,再由输出层(Output layer)对隐藏层表征的特征空间做线性组合进行预测输出。同时,基于神经网络的预测模型一般通过以均方误差(Mean square error,MSE)为损失函数(Loss function)的反向传播(Back propagation,BP)方式,通过梯度下降算法训练和优化神经网络各连接层(如输入层到隐藏层,隐藏层到隐藏层,隐藏层到输出层)的权重参数\(\theta\),从而实现预测建模~\cite{zhangSimulation2001}。 基于神经网络自身的结构特性,神经网络预测模型通过不同的神经网络隐藏结构构造方式以及网络权重参数训练方式衍生发展出了众多的变体。其中,多层感知机(Multilayer perceptron,MLP)作为一种以直接前馈(Feedforward)多层结构且层间均以全连接方式构造的神经网络,成为了机器学习方法下神经网络预测模型的代表结构。\autoref{fig:ch.intro.mlp}展示了一种经典的单隐藏层结构MLP模型。 \begin{figure}[t!] \centering \includegraphics[width=0.8\textwidth]{float/ch.intro/mlp.png} \caption{多层感知机结构示例\label{fig:ch.intro.mlp}} \end{figure} 以\autoref{fig:ch.intro.mlp}所示结构为例,其预测建模过程为: \begin{align} f_{mlp}(\x) &= \w_{out}\h_{mlp}, \label{eq:ch.intro.mlpA} \\ \h_{mlp} &= \sigma (\w_{hid}\x). \label{eq:ch.intro.mlpB} \end{align} \autoref{eq:ch.intro.mlpA}中\(\w_{out}\)同样表示模型的输出权重,\(\h_{mlp}\)是MLP通过\autoref{eq:ch.intro.mlpB}中激活函数\(\sigma(\cdot)\)对输入特征\(\x\)做非线性变换得到的隐藏层中隐藏状态状态表示。设该MLP模型中隐藏层神经元数量为\(K\),一般\(K\)大于 \(T\),远大于\(H\)。在经过训练集\(\mathd\)上的非线性变换后,使得低维输入空间\(\mathbb{X} = \{\x_n\}_{n=1}^N \in \mathr^{N \times T}\)至目标空间\(\mathbb{Y} = \{\y_n\}_{n=1}^N \in \mathr^{N \times H}\)的复杂非线性映射\(\mathcal{F}\)求解问题,通过隐藏层的非线性变换转变为高维特征空间\(\mathbb{H} := \{\sigma (\w_{hid}\x_n)\}_{n=1}^N \in \mathr^{N \times K}\)向低维空间\(\mathbb{Y}\)线性映射的简单问题。 通过对比\autoref{fig:ch.intro.mlp}与\autoref{fig:ch.intro.svm},以及对比\autoref{eq:ch.intro.mlpA}与\autoref{eq:ch.intro.svmA},可见MLP模型与SVM模型处理时间序列预测这一复杂问题的思路是一致。区别在于,SVM模型低维输入空间向高维特征空间变换是基于其\(\vartheta\)所定义的核函数,\autoref{eq:ch.intro.svmB}中输出权重的求解是闭式的;而MLP模型的特征空间变换是基于其\(\vartheta\)所定义的隐藏层结构与\(\theta\)所包含的隐藏层权重,且权重参数\(\theta:=\{\w_{out},\w_{hid}\}\)的优化问题是非凸的。 事实上,以MLP为代表,神经网络模型权重参数\(\theta\)的优化问题是普遍非凸的,且随着神经网络模型隐藏结构复杂程度的加深,例如隐藏层数的增加,而更加难以求解。针对此问题,基于反向传播(Back propagation,BP)的梯度下降(Gradient descent,GD)方法是一种有效且通行的方案。也因此,常有学者将基于梯度下降训练的神经网络模型称为反向传播神经网络(Back propagation neural network,BPNN)模型\cite{wangBack2015,wongTime1991,wangForecasting2011,dongSmall2018}。 其中,反向传播是指梯度下降训练方法中计算各层权重参数梯度时所使用的链式法则梯度传导过程。具体地,\(\theta\)的优化问题可以被视为以权重参数为自变量,以损失函数值为因变量,寻找合适的权重参数以找寻最小损失函数值的问题。设,\(\w\)表示权重参数集合\(\theta\)中的某一权重项,例如\autoref{eq:ch.intro.mlpA}中的输出层权重\(\w_{out}\)或\autoref{eq:ch.intro.mlpB}中的隐藏层权重\(\w_{hid}\),神经网络模型的损失函数为\(\ell(\w)\)。在经过以\(\mathd\)为训练集的神经网络预测模型表征后,一般有: \begin{align} \ell(\w) &= \frac{1}{N \times H} \sum^N_{n=1} \|\e_{n}\| ,\label{eq:ch.intro.mse}\\ \e_{n} & = \y_n - f(\x_n) \label{eq:ch.intro.en}. \end{align} \autoref{eq:ch.intro.mse}展示了神经网络预测模型在训练集\(\mathd\)上的MSE损失,其中,如\autoref{eq:ch.intro.en}所示,\(\e_n\)表示模型在训练集\(\mathd\)中第\(n\)个样本对上的预测误差向量,\(\norm{\e_n}\)是预测误差向量\(\e_n\)的$L_2$范数。 梯度下降方法的核心思想在于,基于神经网络中激活函数的连续性与可微性,通过向\(\w\)添加一个很小的动量\(\Delta_{\w}\),即\(\norm{\Delta_{\w}}\)很小,等价于\(\w + \Delta_{\w}\)近似\(\w\),利用泰勒近似将复杂非凸的\(\ell(\w)\)函数优化问题当作一个简单的函数极小值求解问题。其中,\(\ell({\w + \Delta_{\w}})\)可用一阶泰勒展开予以近似: \begin{equation} \ell({\w + \Delta_{\w}} ) \approx \ell({\w}) + \nabla_{\w}^\trans \Delta_{\w}. \label{eq:ch.intro.gd} \end{equation} \autoref{eq:ch.intro.gd}中,\(\nabla_{\w}\)表示\(\w\)在误差函数\(\ell\)中的梯度。此时,梯度下降方法的目标便是找寻合适的动量\(\Delta_{\w}\)使得\autoref{eq:ch.intro.gd}中损失函数\(\ell\)最小。在最陡下降中,定义学习速率(Learning rate)为\(\eta \),且\(\eta > 0\),令: \(\Delta_{\w} = -\eta \nabla_{\w}\)。 则有如\autoref{eq:ch.intro.eta}所示不等式性质: \begin{equation} \ell({\w}) > 0 \quad \text{且} \quad \eta \nabla_{\w}^\trans \nabla_{\w} > 0. \label{eq:ch.intro.eta} \end{equation} 当\(\eta \)足够小时,\autoref{eq:ch.intro.gd}的条件得到满足,即可直接证明出如\autoref{eq:ch.intro.lr}所示收敛性质: \begin{equation} \ell({\w -\eta \nabla_{\w}} ) \approx \ell({\w}) -\eta \nabla_{\w}^\trans \nabla_{\w} < \ell({\w}). \label{eq:ch.intro.lr} \end{equation} \begin{algorithm}[t!] \caption{神经网络模型梯度下降方法训练过程} \renewcommand{\algorithmcfname}{算法} \renewcommand{\algorithmicrequire}{\textbf{输入:}} \renewcommand{\algorithmicensure}{\textbf{输出:}} \label{alg:ch.intro.gd} \begin{algorithmic}[1] \REQUIRE {数据集\(\mathd= \left\{\left(\x_{n}, \y_{n}\right) \in\left(\mathbb{R}^{T} \times \mathbb{R}^{H}\right)\right\}_{n=1}^{N}\),神经网络模型超参数集合\(\vartheta\) } \REQUIRE { 基于设定的神经网络模型超参数集合\(\vartheta\),初始化如下参数:\\ 梯度下降方法的当前迭代次数\(i\leftarrow 0\)\\ 当前迭代次数下神经网络权重参数集合\(\theta^i\)\\ 与模型训练相关的其他参数 } \ENSURE{神经网络模型权重参数集合\(\theta\),神经网络模型超参数集合\(\vartheta\),确定神经网络模型\(f \in \{\vartheta, \theta\}\) } \WHILE{未满足\(\vartheta\)界定的收敛条件} \STATE \(i\leftarrow i+1\) \STATE 基于\(\theta^i\),确定模型\(f \leftarrow f \in \{\vartheta, \theta^i\}\) \STATE 基于数据集\(\mathd\)和模型\(f\),完成前馈过程\(f(\x)\),计算模型损失函数值\(\ell({\w}) \) \FOR{\(\w\) in \(\theta^i\) } \STATE 选取计算梯度所需的样本 \STATE 根据反向传播链式法则计算梯度信息\(\nabla_{\w}\) \STATE 根据梯度下降更新公式更新权重参数\(\w\) \ENDFOR \ENDWHILE \RETURN { 已完成更新过程的权重参数集合\(\theta \leftarrow \theta^i\) } \end{algorithmic} \medskip \end{algorithm} 同时,借助从输出层向输入层的反向传播过程,通过链式法则可以依次计算出输出端至输入端所有权重参数的局部梯度, 从而完成模型权重参数集合\(\theta\)内所有权重参数的单次更新。完整的神经网络预测模型训练过程如算法\ref{alg:ch.intro.gd}所示。 显然,梯度下降方法的性能与效率直接决定了基于梯度下降方法训练权重参数的神经网络模型性能与建模效率~\cite{liuImproved2020}。因此,神经网络梯度下降方法的改良问题成为了神经网络建模技术研究中的重要问题。围绕此问题,已发展出了众多梯度下降改进方法。 例如,基于牛顿法的梯度下降方法~\cite{bennettNewton1916}将凸优化中的牛顿法(Newton method)引入非凸的神经网络权重参数优化问题中,通过将\autoref{eq:ch.intro.gd}中的一阶泰勒近似调整为二阶泰勒近似,加速了神经网络模型的收敛速度\cite{nesterovMethod1983a,nesterovCubic2006}。 随机梯度下降(Stochastic gradient descent,SGD)方法~\cite{bottouStochastic2012}则通过将\autoref{eq:ch.intro.mse}中基于完整训练集的损失函数计算方式修改为基于随机选取的单个样本来计算损失函数值,从而大大降低了梯度下降方法的计算复杂度。 为抑制SGD方法随机选取样本所带来的梯度震荡,Sutskever et al.~\cite{sutskeverImportance2013}引入了动量(Momentum)的概念,通过向\autoref{eq:ch.intro.gd}中的梯度向量添加动量,使得模型权重参数向相关方向加速变换,从而实现加速收敛。 针对\autoref{eq:ch.intro.lr}中学习速率的选择问题,Duchi et al.~\cite{duchiAdaptive2011}提出了自适应梯度法(Adaptive gradient algorithm,AdaGrad),通过对较为密集的特征设置较小的学习速率,对较为稀疏的特征设置较大的学习速率,从而实现了针对特征的学习速率自适应设置。 % \raggedbottom 概括而言,尽管这些梯度下降方法的细节各有不同,但基于梯度下降方法的神经网络模型总体遵循算法\ref{alg:ch.intro.gd}中所示的输入、输出与执行步骤完成模型的参数优化。由此,通过梯度下降方法的权重参数训练,机器学习方法下的神经网络预测模型具备了良好的预测性能。 其中,前文所举例的MLP预测模型凭借其神经网络结构相对简单,权重参数较易训练,可通过构造具有多个神经元的输入层与输出层自然实现多输入多输出(Multiple-input Multiple-output,MIMO)策略等特点,被广泛应用于时间序列预测建模任务,尤其是提前多步预测的预测建模任务中。例如,Hamzaçebi et al.~\cite{hamzacebiComparison2009}比较了MLP在多步时间序列预测任务中采用直接策略与迭代策略的性能差异。相对于以往采用单一MLP进行多步预测的方法,Adeodato and Monteiro~\cite{adeodatoMLP2011}提出了一种基于集成思想的多步预测方法,通过集成多个MLP进行多步时间序列预测,从而提升了预测精度。 Flores et al.~\cite{floresEvolutive2012}通过遗传算法(Genetic algorithm,GA)对MLP中的隐藏层单元数、激活函数的种类进行优化,提出了一种基于GA-MLP的预测方法。 Bao et al.~\cite{baoPSOMISMO2014}针对时间序列的多步预测问题,以MLP作为预测模型,提出了一种基于PSO的多输入子多输出时间序列预测建模策略,更进一步地提升了多层感知机在时间序列多步预测上的性能。针对流感预测问题,Yang and Bao~\cite{yangComprehensive2021}通过实验表明了在多输入多输出策略、直接策略和迭代策略以及MLP预测模型和MSVR模型的策略与模型两两组合中,基于MIMO策略的MLP模型和MSVR模型具备更高的预测精度。 % \clearpage \section{深度学习预测建模研究综述} \subsection{深度学习建模方法} 近年来,得益于海量数据的积累、计算设备浮点运算能力的大幅提升、梯度下降方法的改进、以及通用神经网络建模框架(如Google推出的Tensorflow~\cite{abadiTensorflow2016},Meta\footnote{曾用名Facebook。Facebook于2021年10月改名为Meta。}推出的Pytorch~\cite{paszkePytorch2019}和Microsoft推出的CNTK~\cite{seideCNTK2016}等)的出现与推广,以卷积神经网络(Convolution Neural Network,CNN)~\cite{li2016juanji}和循环神经网络(Recurrent Neural Network,RNN)~\cite{yang2018xunhuan}为代表结构的深度学习(Deep learning,DL)建模技术受到了学术界和工业界的广泛关注和研究。 深度学习建模技术是机器学习建模技术中一类基于深度神经网络(Deep neural network,DNN)的建模技术\cite{lecunDeep2015}。其中,DNN是对基于不同深度神经结构所构建的神经网络的统称。例如,基于卷积结构的CNN和基于循环结构的RNN均属于DNN,其是DNN在不同特定结构上的具体实现。 深度学习建模技术与传统机器学习建模技术之间的区别在于,针对一些复杂场景的建模问题,例如计算机视觉(Computer vision,CV)中的图像分类问题\cite{dengImageNet2009}和自然语言处理(Natural language processing,NLP)中的文本分类问题\cite{maasLearning2011},传统的机器学习建模技术受限于简单的模型结构,在原始输入特征的基础上难以直接取得较好的分类结果,因此往往需要人工经验建立特定的特征提取方法,如基于图像像素数值高斯分布(Gaussian distribution)描述图像特征的Fisher Vector方法\cite{sanchezHighdimensional2011,sanchezImage2013,perronninLargescale2010}和基于语言文档内词频信息描述语句特征的词频-逆文档(Term frequency - inverse document frequency,TF-IDF)方法\cite{aizawaInformationtheoretic2003,jonesStatistical1972,luhnStatistical1957},从原始数据输入特征中提取出新的特征以提升机器学习模型处理这些问题的能力。而深度学习建模技术则直接将原始数据特征作为输入,依靠DNN的神经网络结构,如CNN中的卷积结构和RNN中的循环结构,在模型权重参数的训练中学习出数据的特征表示,成功增强了模型对于问题理解能力与解决能力。 \begin{figure}[t!] \centering \includegraphics[width = \linewidth]{float/ch.intro/lecun.png} \caption{卷积神经网络图像分类模型示例(引用于Lecun et al. Deep Learning. Nature, 2015, 521(7553): 436-444,详见文献~\cite{lecunDeep2015})} \label{fig:ch.intro.lecun} \end{figure} \autoref{fig:ch.intro.lecun}通过引用Lecun等\cite{lecunDeep2015}在Nature期刊上的CNN图像分类模型示例,形象展示了CNN基于卷积结构逐层学习图像特征表示的过程。其中,红色线表示卷积层(Convolutional layer)的卷积操作,绿色线表示池化层(Pooling layer)的下采样操作,图底处的“Red”、“Green”和“Blue”分别表示彩色图片在红绿蓝三原色下的数值状态,图顶处“Samoyed(16)”等信息展示出模型在各图片类别上的置信度,基于置信度信息,可知模型成功分类出了图片所展示的萨摩耶犬种类别。 作为在图像处理和自然语言处理等领域表现出优异性能的深度神经网络~\cite{alomStateoftheart2019},CNN与RNN在时间序列预测建模任务上的应用也成为了近年来的研究热点~\cite{sezerFinancial2020,lindbergLongterm2019,mudelseeTrend2019}。例如,Sadaei et al.~\cite{sadaei2019short}提出了一种基于CNN的短期负荷预测模型,通过将多变量的时间序列以图像的形式加以封装,使其作为输入来训练CNN预测模型,实验展示了该CNN负荷预测模型的优异性能。Salinas et al.~\cite{salinasDeepAR2020}对长短期记忆(Long-short term memory,LSTM)神经网络这一具有门控(Gate)机制的RNN加以改进,提出了一种名为深度自回归(Deep autoregression,DeepAR)的时间序列多步概率预测模型。Wang et al.~\cite{wangPhotovoltaic2019}将CNN与LSTM结合,通过LSTM对时间序列数据的长短期特征进行特征学习和表达,而后基于CNN对LSTM结构的表征在空间特征上进行学习,提出了一种长短时记忆卷积神经网络结构的深度时间序列预测模型,并结合光伏发电预测任务开展应用研究。 \subsection{模型选择问题} \begin{algorithm}[t!] \caption{基于梯度下降方法的神经网络预测建模技术模型选择过程} \renewcommand{\algorithmcfname}{算法} \renewcommand{\algorithmicrequire}{\textbf{输入:}} \renewcommand{\algorithmicensure}{\textbf{输出:}} \label{alg:ch.intro.ms} \begin{algorithmic}[1] \REQUIRE {数据集\(\mathd= \left\{\left(\x_{n}, \y_{n}\right) \in\left(\mathbb{R}^{T} \times \mathbb{R}^{H}\right)\right\}_{n=1}^{N}\),神经网络模型超参数集合\(\vartheta\)的搜索空间\(\Omega\) } \REQUIRE { 基于设定的超参数搜索空间\(\Omega\),初始化如下参数:\\ 模型选择方法的当前迭代次数\(j\leftarrow 0\)\\ 当前迭代次数下最优的神经网络超参数集合\(\vartheta^*\)\\ 当前迭代次数下最优的神经网络权重参数集合\(\theta^*\)\\ 与模型选择相关的其他参数 } \ENSURE{神经网络模型权重参数集合\(\theta\),神经网络模型超参数集合\(\vartheta\),确定神经网络模型\(f \in \{\vartheta, \theta\}\) } \WHILE{未满足模型选择方法界定的收敛条件} \STATE \(j\leftarrow j+1\) \STATE 从超参数集合\(\vartheta\)的搜索空间\(\Omega\)中选择或更新出当前的超参数集合\(\vartheta^j\) \STATE 基于\(\vartheta^j\):\\ \hspace{2em}执行算法\ref{alg:ch.intro.gd}所示步骤\\ \hspace{2em}得到当前\(\vartheta^j\)试验下的权重参数集合\(\theta|\vartheta^j\)\\ \hspace{2em}确定模型\(f \leftarrow f \in \{\vartheta^j, \theta|\vartheta^j\}\) \STATE 基于数据集\(\mathd\)和模型\(f\),计算模型误差 \STATE 基于模型误差与超参数更新方法:\\ \hspace{2em}更新最优的神经网络超参数集合\(\vartheta^*\)\\ \hspace{2em}更新最优的神经网络超参数集合\(\theta^* \leftarrow \theta|\vartheta^*\) \ENDWHILE \RETURN { 已完成更新过程的超参数集合\(\vartheta \leftarrow \vartheta^*\)与权重参数集合\(\theta \leftarrow \theta^*\) } \end{algorithmic} \end{algorithm} 尽管深度学习预测建模技术在一些时间序列建模预测任务中表现出了优秀的学习能力,但在面对具体应用问题时,深度学习预测建模技术仍然会遇到建模技术所普遍面临的模型选择(Model selection)问题。具体地,模型选择问题是指,针对一个应用问题,如何找寻合适的模型参数以优化该模型性能的问题\cite{guyonModel2010,hastieElements2009,escalanteParticle2009}。 在本文所关注的时间序列预测问题中,如\autoref{eq:sec.intro.def}所示,对于由超参数集合\(\vartheta\)和权重参数集合\(\theta\)所定义的NN预测模型\(f\),其模型选择问题便是如何选择合适的\(\vartheta\)与\(\theta\)从而提升模型\(f\)预测性能的问题。具体地,模型选择过程如算法\ref{alg:ch.intro.ms}所示。 其中,权重参数集合\(\theta\)是基于算法\ref{alg:ch.intro.gd}所示的梯度下降训练方法予以确定。但如算法\ref{alg:ch.intro.gd}中的输入所示,权重参数集合\(\theta\)依赖于超参数集合\(\vartheta\)所定义的模型神经网络结构参数(如CNN模型中卷积层层数、卷积核宽度和卷积核数量等等)和梯度下降方法参数(如SGD方法中的学习速率、批次样本选取数量和动量惯性系数等等),不同的\(\vartheta\)必然会导致\(\theta\)的差异。因此,作为一类梯度下降方法训练的神经网络建模技术,基于DNN的深度学习预测建模技术在处理模型选择问题时同样需要遵循如算法\ref{alg:ch.intro.ms}所示的模型选择过程。 % \begin{figure}[t!] % \centering % \includegraphics[width = \linewidth]{float/ch.intro/DL.png} % \caption{深度学习预测建模技术的模型选择挑战} % \label{fig:ch.intro.dl_c} % \end{figure} 与传统机器学习预测建模技术所遇到的模型选择挑战不同,深度学习预测建模技术所面临的模型选择挑战尤为突出。深度学习模型复杂的神经网络构型使其在实际应用时难以选择出合适的神经网络结构\cite{miikkulainenChapter2019}。这里的困难主要体现在两个方面:一是相较以MLP为代表的浅层简单结构神经网络模型,深度学习模型往往因其更深的隐藏结构而具有更多的权重参数以及更加复杂的梯度计算方式,降低了算法\ref{alg:ch.intro.ms}中步骤4所示的权重参数优化效率\cite{glorotUnderstanding2010,pascanuDifficulty2013},从而导致了深度神经网络预测建模技术模型选择效率低的问题;二是复杂的神经网络结构加深了算法\ref{alg:ch.intro.ms}中超参数搜索空间\(\Omega\)的复杂程度,从而导致了深度神经网络预测建模技术神经网络结构选择效果差的问题。尤其, % 如\autoref{fig:ch.intro.dl_c}所示, 较低的权重参数优化效率会再次增加神经网络结构选择的难度,神经网络结构难度的加大会进一步降低模型选择的效率。 因此,在本文所聚焦的时间序列预测建模问题中,深度学习预测建模技术梯度下降方法效率低、神经网络结构复杂所导致的模型选择效果差的问题使得当前时间序列深度学习预测建模技术应用存在较大局限。这些问题大大增加了优化时间序列深度学习预测模型所需的计算时间、计算资源和人员精力,使得现实任务中的深度学习预测模型难以被精细优化,进一步限制了时间序列深度学习预测模型的准确性、稳定性、可靠性和应用性。其中,梯度下降方法是造成深度学习预测建模技术模型选择效率低下的主要因素。尽管已有众多提高梯度下降过程效率的方法\cite{bottouStochastic2012,duchiAdaptive2011,liuImproved2020},但如\autoref{sec:ch.intro.ml}中所述,这些方法仍需遵循算法\ref{alg:ch.intro.gd}中所示步骤,多次迭代计算梯度以渐进优化权重参数的本质没有改变。因此,基于梯度下降方法的深度学习预测建模技术从根源上便存在模型选择效率低的问题,在改变试验超参数时始终需要重新训练权重参数才可得到当前超参数的模型效果,其模型选择的效率难以显著降低。因而,现有的时间序列深度学习预测建模技术模型选择研究多集中于神经网络结构选择问题的研究。 时间序列深度学习预测技术中的神经网络结构选择问题是指,根据时间序列预测任务的场景如何选择合适的深度神经网络结构以实现更优的预测性能。 根据深度学习模型预测建模过程的阶段可以将神经网络结构选择问题分解为深度学习模型的表征结构选择问题与输出结构选择问题。 时间序列深度学习预测模型表征结构与输出结构分别是指深度学习模型对时间序列数据输入特征进行深层非线性表征的神经网络结构,以及对深层非线性表征结果进行解码以生成输出结果的神经网络结构。 前者具体如,CNN的输入层(Input layer)、卷积层(Convolutional layer)与池化层(Pooling layer)结构~\cite{koprinskaConvolutional2018},RNN的输入层和隐藏层(Hidden layer)结构~\cite{salinasDeepAR2020}等;而后者具体如,基于全连接层(Fully connected layer)的解码器结构~\cite{koprinskaConvolutional2018,caiDayahead2019},基于循环结构的解码器结构~\cite{liuDSTPRNN2020} 和自回归结构~\cite{caiDayahead2019,salinasDeepAR2020}等。其中,CNN预测模型因其神经网络结构的前馈机制,一般采用全连接解码器结构作为其输出结构;而RNN预测模型因其神经网络的循环机制,衍生出包括全连接结构解码器、循环结构解码器和自回归结构在内的多种输出结构。因此,表征结构的选择问题是CNN预测建模技术与RNN预测建模技术的共性问题,而输出结构的选择问题是基于RNN建模技术的深度学习预测模型特有问题。同时,RNN预测建模技术可通过调整解码器结构自然地实现不同的多输出生成策略。因此,对于基于RNN的DNN预测模型而言,时间序列预测中的多输出选择问题是其神经网络结构选择问题中的一类特定问题,表现为输出结构的选择问题。 此外,深度学习模型的表征结构可进一步细分为输入结构与隐藏结构。对基于神经网络的预测建模技术而言,因其输出层单元与时间序列多输入特征的一一对应,神经网络预测建模技术输入结构的选择直接反映了输入特征的选择。例如,Sezer and Ozbayoglu~\cite{sezer2018algorithmic}利用CNN卷积核的多通道输入能力,将金融时间序列转换为二维输入结构,以此构造基于CNN的算法交易模型。Yang et al.~\cite{yangShortterm2021}借助扩充RNN的输入层结构将传统的单变量时间序列预测建模多输入策略加以优化,使其从传统的单个输入时步对应单个输入观测值扩充为了单个输入时步对应连续多个输入观测值,通过PSO算法优化输入步长进一步提高了RNN预测模型的准确率。因此,DNN预测建模技术的特征选择问题亦可视为其神经网络结构选择问题中的一类特定问题,表现为输入结构的选择问题。 基于对时间序列深度学习预测技术神经网络结构选择问题的上述分析,加之隐藏结构在深度神经网络中权重参数与结构参数占比最多,其结构选择问题是当前神经网络结构选择问题的研究重点,本节将对神经网络隐藏结构的选择研究予以重点介绍,并将输出结构选择研究和多输出选择研究予以合并介绍,输入结构选择研究与特征选择研究亦合并介绍。 \subsubsection{DNN隐藏结构选择} 针对神经网络隐藏结构选择这一跨应用领域的共性关键建模技术问题,国内外学者展开了大量的研究与实践工作,并在一些领域率先取得了成效。这一问题的研究途径主要是将神经网络结构选择问题视为神经网络结构搜索(Neural architecture search,NAS)问题。Elsken et al.~\cite{elskenNeural2019a}针对该问题总结出搜索空间、搜索策略和性能评价三个要素,即将一系列不同的神经网络隐藏结构作为候选单元组成搜索空间,在既定的搜索空间或是自适应增长的搜索空间内,通过启发式搜索算法或强化学习算法等智能优化与搜索技术建立搜索策略寻找适应问题的最优神经网络隐藏结构,并对每一次的更新结构重新训练以做出评价。例如,Baker et al.~\cite{bakerDesigning2017}面向图像分类问题提出了一种基于强化学习的NAS方法,通过逐层的搜索和构造CNN的卷积与池化结构,从而在CIFAR-10~\footnote{图像分类领域内的基准数据集之一,共有10个类别,包含50000个训练样本与10000个测试样本。}任务上取得了优异成绩。 此外,基于Baker et al.~\cite{bakerDesigning2017}的工作,Liu et al.~\cite{liuHierarchical2018a}提出了一种基于遗传进化算法的层级NAS策略,将层级的卷积结构或池化结构作为CNN神经网络隐藏结构的候选单元个体,通过遗传进化算法的融合和变异等动作自适应地构造了分类任务下的CNN神经网络隐藏结构,并刷新了CIFAR-10任务分类准确率的历史(截至其论文发表时)最好成绩。 针对时间序列深度学习预测建模中的神经网络结构选择研究,现有研究亦关注于隐藏结构参数选择问题。Bouktif et al.~\cite{bouktifOptimal2018}针对电力负荷预测情景提出了一种基于遗传(Genetic)算法的输入特征选择与网络层数选择的LSTM时间序列预测模型,通过将既定步长的时间序列输入时步进行$\left[0,1\right]$编码,以及将LSTM隐藏层网络层数参数离散编码,以此作为基因个体代入LSTM模型中迭代训练和评价,以此对电力负荷输入数据和LSTM神经网络的隐藏层层数进行选择。 Peng et al.~\cite{pengEffective2018}针对电力价格预测任务提出了一种基于差分进化(Differential Evolution,DE)算法的LSTM预测模型选择算法。作者以固定隐藏层层数参数的LSTM神经网络作为预测模型,通过将不同输入步长,不同最大训练次数和不同隐藏层神经元个数向量化编码作为DE算法的种群个体,以此优化预测模型的输入步长和隐藏层单元数,从而提升模型预测性能。 在Bouktif et al.~\cite{bouktifOptimal2018}和Peng et al.~\cite{pengEffective2018}的研究基础上,Peng et al.~\cite{pengEffective2020}针对能源月度消耗量预测等场景,以固定隐藏层层数的LSTM作为预测模型,基于果蝇优化(Fruit fly optimization)算法对LSTM的输入步长、训练次数、隐藏层神经元个数和每批次训练样本数(Batch size)一同进行优化,以此进行参数选择。 Li et al.~\cite{liAutoST2020}针对交通流量预测情景提出了一种构造式的CNN预测模型。作者将不同的卷积结构或池化结构封装成候选单元,人工定义了不同的单元组合方式作为构造神经网络结构的动作,并建立一个独立的神经网络对动作适应性加以评估,以此解决CNN预测模型的隐藏结构选择问题。 然而,这些通过不断训练不同结构的深度学习模型来解决模型选择问题的方式意味着很高的建模复杂度、极长的优化时间和不菲的计算资源。例如,Baker et al.~ \cite{bakerDesigning2017}在CIFAR10任务的模型选择工作消耗了10张NVIDIA显卡8-10天的算力。Li et al.~\cite{liAutoST2020}需5.1小时完成北京交通流量数据集(30分钟级,共15072个观测点)上的模型选择工作。 因此,本文将针对找寻合适方法,探求高效稳定的时间序列深度学习预测模型隐藏结构构造理论与选择策略。 % \clearpage \subsubsection{DNN输出策略选择} 深度学习预测建模技术也面临着多输出策略选择问题。由于时间序列预测任务的多输出变量与输入变量之间同样存在着复杂的关联性,且随着预测步长的增加,可能出现预测误差累计等问题\cite{sorjamaaMethodology2007}。因此针对时间序列的提前多步预测问题,需要深度学习预测模型选择合适的多输出策略。 既有多步预测策略主要包括:直接策略、迭代策略~\cite{sorjamaaMethodology2007}和MIMO策略~\cite{bontempiLong2008}。 直接策略是指对于提前多步预测任务,直接针对每个提前时步单独构造预测建模完成对应提前时步预测。 迭代策略是通过构造基于完整的多输入和提前单步观测值的组合训练出单步预测模型,而后将最早时步的输入观测值去除,将上步提前单步预测值新增进输入中,以此得到当前提前单步预测值,迭代此过程直至得到所有提前时步的预测结果。 MIMO策略则是通过构造基于完整的多输入和提前多步观测值的组合训练得到多输出预测模型。 这三种预测策略中,直接策略在破坏了输入与输出的时序连续性的同时增加了建模任务的计算开销,迭代策略则因采用无法避免误差的预测值代替真实值生成下步预测值的做法,易使预测误差随预测步长的增加显著扩大。 相比之下,MIMO策略这种构造完整的多输入多输出关系的方法能够在一定程度上解决迭代策略多步预测任务中的误差累积问题~\cite{baoPSOMISMO2014},同时避免了直接策略构造多个模型所带来的额外计算开销。 因此,现有的时间序列深度学习预测建模技术普遍采用MIMO策略构造多步预测模型~\cite{hewamalageRecurrent2021}。 如,Wu et al.~\cite{wuImproved2019}提出了一种基于经验模态分解的LSTM原油价格预测模型,结合MIMO策略进行了多步预测。 Niu et al.~\cite{niuWind2020}基于MIMO策略建立了一种基于注意力机制的GRU风力预测模型。 Masum et al.\cite{masumInvestigation2019}针对水压时间序列预测问题,比较研究了LSTM和双向LSTM(Bidirectional long short term memory,BI-LSTM)预测模型直接策略、迭代策略和MIMO策略下的表现,实验发现LSTM和BI-LSTM模型在MIMO策略下预测性能更为优异。 由于深度学习预测建模技术的灵活性,即使是在MIMO策略下,深度学习模型依然存在多种不同的多输出生成策略。Hewamalage et al.~\cite{hewamalageRecurrent2021}归纳出了RNN预测模型在MIMO预测策略下基于堆栈结构、全连接解码结构和循环解码结构的输出结构。Salinas et al.~\cite{salinasDeepAR2020}在循环解码结构的基础上,通过将编码器中的循环神经网络复用为解码器展示了一种自回归结构的多输出生成策略。 但这些研究较为简单,未有关注输出结构的选择与优化问题。 基于这样的研究背景,深度学习预测模型在时间序列多步预测任务下的输出结构选择研究仍有待补充和完善,从而建立合适的多输出生成策略,进一步提高预测模型的多步预测性能。 \subsubsection{DNN输入特征选择} 目前,已有较多研究关注了深度学习预测模型多输入的特征选择(Feature selection)问题~\cite{gaoShortTerm2019,wangNovel2020,niuDeveloping2020}。 特征选择是指从已知的输入特征候选集中,按照一定的标准,通过删除一些弱相关的输入特征以寻找出最优输入特征子集,进而降低输入特征空间的维度来改善预测模型性能的方法。 根据是否依赖预测模型的不同,可以将常用的特征选择方法分为过滤法(Filter)和封装法(Wrapper)。过滤法是一种依靠独立于预测模型的统计量来评估多输入特征与输出目标间关系的方法,而封装法是指直接通过预测模型在特征子集上预测性能表现选择特征的方法。 例如,Bouktif et al.~\cite{bouktifOptimal2018}基于封装法对电力负荷LSTM预测模型的输入特征进行挑选。 Wang et al.~\cite{wangNovel2020}利用相关特征算法对输入特征进行挑选后,再将特征子集送入RNN预测模型来对风力进行预测。基于Wang et al.~\cite{wangRandom2018}所构造的电力负荷随机森林预测模型,Zahid et al.~\cite{zahidElectricity2019}提出了一种混合过滤法和封装法的特征选择算法,首先通过递归特征消除法对电力负荷输入数据进行初步筛选,而后利用随机森林完成最终的特征选择,最终构造出基于特征选择CNN的电力负荷预测模型。 Niu et al.~\cite{niuDeveloping2020}提出了一个两阶段特征选择的深度学习预测框架,作者先通过相关特征算法对输入特征进行初筛后,再将初筛后的特征以封装法的方式送入ELM预测模型中完成第二次特征选择,最后将选择后的特征子集送入由卷积长短时记忆(Convolutional long short term memory,CLSTM)网络、LSTM网络、控制循环单元(Gated recurrent unit,GRU)网络组成的复杂网络中进行学习和训练,从而完成预测建模。 对比过滤法和封装法,已有研究表明封装法能够更有效地提升模型预测性能\cite{huHybrid2015}。 鉴于封装法下特征选择提升预测模型准确度的有效性,目前已有众多学者提出了基于封装法的多输入特征选择方法\cite{renMultivariate2022,naModified2022,wangRandom2018,yangComprehensive2021}。 例如, Yang et al.\cite{yangComprehensive2021}等借助二元粒子群优化算法(Binary particle swarm optimization,BPSO)对以\(0,1\)二元变量编码的多输入特征和模型结构参数进行筛选,提出了一种流感阳性样本率预测的综合学习粒子群优化建模框架。 然而,深度学习建模技术兼容处理每一输入时步内多维特征的性质,如CNN卷积核的多通道性质,RNN的时步多维输入性质,使得深度学习预测建模技术的多输入选择问题不仅包含特征选择问题,也包含特征结构选择(Feature structure selection)问题。 这里的特征结构选择是指,从已知的输入时间序列特征中,通过折叠或展开相关的输入特征到对应输入时步中以寻找出最优输入特征结构,进而改善深度学习预测模型性能。 例如,Bandara et al.\cite{bandaraForecasting2020}利用RNN循环读取每一时步输入的机制,通过滑动窗口方法(Moving window schema)将单变量时间序列数据在每个时步折叠出窗口范围的连续特征,增强了RNN预测模型的准确性。Yang et al.~\cite{yangShortterm2021}针对华中地区的电力负荷预测问题,借助RNN的递归多维输入性质,通过将每条样本中时间粒度为小时的7天电力负荷输入样本数据,展开为每一输入步长包含一小时负荷值的输入结构或折叠为每一输入步长包含一天负荷值的输入结构,从而更好的建模这种内在关联性,进一步提高预测准确度。Wang et al.~\cite{wangTraffic2016}利用CNN卷积层卷积核的多通道输入性质,将每条样本中的一维道路流量时间序列折叠为二维矩阵,从而提升了CNN预测模型对于时空特征的提取学习能力。 通过上述研究与分析,基于过滤法的多输入选择方法并不完全适用于深度学习模型下的多输入特征结构选择问题,而基于封装法下的特征选择研究在深度学习建模背景下的多输入特征结构选择问题关注较少。 同时,基于封装法下的深度学习预测模型特征选择算法同样面临由于反复多次完备训练以评估特征子集而导致的计算开销高昂,效率低下等问题。 因此,本文将继续深入研究时间序列深度学习预测建模多输入选择问题,探索和发展高效优化深度学习预测模型多输入特征结构的方式方法。 \section{随机映射方法研究综述} \subsection{基于SMLP的预测建模方法} 对于深度学习预测建模技术模型选择问题,不论是隐藏结构的及参数选择,或是输出策略与结构的选择,还是输入特征结构的选择,都受限于梯度下降方法所导致的低效性,难以在有限时间内有效解决模型选择问题,从而无法高效提升模型预测性能。针对此不足,随机映射方法是一种替代梯度下降构造深度学习预测模型的可行方法。 随机映射是最早由Schmidt et al.~\cite{schmidt1992feed}提出的一种采用非迭代学习机制的MLP建模方法。这种方法利用随机初始化,固定神经网络的输入与隐藏层权重,而后基于有监督的反馈闭式地求解神经网络输出层权重的思路建立神经网络模型,具有具备很低的计算开销、很高的学习效率与良好的非线性表达能力等优势和特点,已发展出随机向量函数链接网络(Random Vector Functional Link Network,RVFL)、极限学习机(Extreme Learning Machine,ELM)等成熟有效的随机多层感知机(Stochastic multiple percentage, SMLP)学习技术~\cite{scardapaneRandomness2017,caoReview2018,tanakaRecent2019}。 \begin{figure}[!t] \begin{subfigure}[b]{0.25\textwidth} \includegraphics[height=\linewidth]{float/ch.cnn/layer.pdf} \caption*{} \end{subfigure} \hspace*{-0.15\textwidth} \begin{subfigure}[b]{0.25\textwidth} \includegraphics[height=\linewidth]{float/ch.cnn/schmidt.pdf} \caption{Schimidt网络} \end{subfigure} \hspace*{0.03\textwidth} \begin{subfigure}[b]{0.25\textwidth} \includegraphics[height=\linewidth]{float/ch.cnn/rvfl.pdf} \caption{RVFL网络} \end{subfigure} \hspace*{\fill} \begin{subfigure}[b]{0.25\textwidth} \includegraphics[height=\linewidth]{float/ch.cnn/elm.pdf} \caption{ELM网络} \end{subfigure} \caption{\label{fig:randomnet}随机多层感知机模型示例} \end{figure} \autoref{fig:randomnet}展示了以Schimidt网络、RVFL网络和ELM网络为代表的SMLP模型。 以\autoref{eq:ch.intro.mlpA}和\autoref{eq:ch.intro.mlpB}及其参数定义为例,SMLP模型的预测过程如\autoref{eq:ch.intro.smlp}和\autoref{eq:ch.intro.smlp.h}所示: \begin{align} f_{smlp}(\x) &= \w_{out}\h_{smlp}, \label{eq:ch.intro.smlp}\\ \h_{smlp} &= \sigma (\w_{hid}\x). \label{eq:ch.intro.smlp.h} \end{align} 以最小二乘法为例,\autoref{eq:ch.intro.lsq}展示了SMLP模型输出层权重\(\w_{out}\)的计算过程。其模型损失函数依然保持\autoref{eq:ch.intro.mse}所展示的MSE损失形式: \begin{align} \w_{out} &= \argmin_{\w_{out}} \norm{\y - \w_{out}\h_{smlp}} \label{eq:ch.intro.lsq}\\ & = \y \h_{smlp}^{\trans} (\h_{smlp}\h_{smlp}^\trans)^{-1}. \notag \end{align} 与梯度下降方法迭代训练输出层权重\(\w_{out}\)与隐藏层权重\(\w_{hid}\)不同,随机映射方法在以一随机分布初始化隐藏层权重\(\w_{hid}\)后,固定\(\w_{hid}\),而后基于最小二乘法(Least square method)和岭回归(Ridge regression)等闭式求解方法直接计算输出层权重\(\w_{out}\)。 联系\autoref{sec:ch.intro.ml}中所述的SVN预测建模方法,对于一个确定核函数与训练数据\(\mathd\)的SVM模型,其高维特征空间\(\mathbb{H}\)与输入空间\(\mathbb{X}\)是固定的,意味着输入空间与特征空间之间存在一个确定且固定的非线性矩阵变换(即隐藏权重),且如\autoref{eq:ch.intro.svmB}所示,SVM模型的输出权重求解方法同样是闭式求解方法。 因此,\autoref{sec:ch.intro.ml}中所述的支持向量机模型是一种SMLP模型的特例\cite{vapnikNature2013}。由此可见,相比于算法\ref{alg:ch.intro.gd}所描述的迭代式梯度下降权重参数训练方法,随机映射方法通过单次模型前馈过程即可完成整个模型的权重参数训练,极大提高了模型构造效率。 虽然传统的SMLP模型避免了梯度下降训练计算开销高的问题,但这种权重随机机制使其模型性能的收敛性与稳定性受到质疑。针对于此,Huang et al.~\cite{huang2006universal}基于递归添加神经元的方式构造了一种增长极限感知机(Incremental extreme learning machine,IELM),并证明了IELM对于任意连续有界目标函数的学习收敛能力。 在此基础上,Wang and Li\cite{wang2017stochastic}提出了一种随机配置网络(Stochastic configuration network,SCN),通过迭代增加隐藏层神经元,基于监督机制闭式挑选神经元隐藏层权重,全局更新输出层权重的方式,构造出增长的SMLP模型,并证明了SCN的普适逼近性质(Universal approximation property)。基于此,通过改进模型神经网络构造方法,所建立的SMLP模型可具有理论保证的拟合收敛性与稳定性。 目前,国内外学者基于SMLP模型展开了广泛的时间序列预测建模技术与应用研究。如,Xue et al.~\cite{xueFinancial2018}提出了一种基于ELM和正则化方法的现金流预测模型。Xiong et al.~\cite{xiongSeasonal2018}利用ELM和季节趋势分解技术建立了一种农产品价格时间序列预测模型。利用RVFL收敛速度快,建模效率高的优势,Yu et al.~\cite{yuInvestigation2020}集成了多个不同参数设置的RVFL,构造集成模型进行原油价格预测。基于分类问题下ELM在深层神经网络结构方向上的探索和尝试~\cite{yuLearning2015,tangExtreme2016},Song et al.~\cite{songNovel2017}建立了一种集成ELM的时序序列预测建模型,作者使用了90个改进型ELM作为集成预测模型中的预测单元,在Marckey-Glass时间序列数据集~\footnote{https://en.wikipedia.org/wiki/Mackey-Glass\_equations}、St. Louis Fed金融指数时间序列数据集~\footnote{https://www.stlouisfed.org/news-releases}和太阳黑子时间序列时间数据集~\footnote{http://www.sidc.be/silso/home}上进行了测试,展示与分析了集成多层ELM的性能优越性和建模高效性。 \subsection{基于SDNN的预测建模方法} 与此同时,一系列基于随机映射方法的深度学习建模技术不断被探索和研究。 为解决RNN权重参数训练开销大,收敛速度慢等问题,Jaeger~\cite{jaegerEcho2001}于2001年基于随机映射方法提出了基于随机映射的RNN模型,并将其命名为状态回声网络(Echo state network,ESN)。作为文献中最早提出与最具代表性的随机深度神经网络(Stochastic deep neural network,SDNN)建模技术,ESN在传统RNN的基础上,基于随机映射方法将RNN中的输入层与隐藏层权重随机初始化并固定,通过最小二乘法、岭回归($L_2$正则化的最小二乘法)等闭式求解算法计算出输出层权重~\cite{shen2018duoxishu}。 这种神经网络继承了RNN序列建模的特点,能够有效的建立时间序列多输入与输出间的非线性关系,同时发挥了随机映射非迭代式训练的快速收敛优势~\cite{jaegerAdaptive2002},在时间序列预测建模领域中得到了广泛的应用和发展。 例如,Deihimi and Showkati~\cite{deihimiApplication2012}针对短期电力负荷预测问题提出了一种基于ESN的预测模型。Hu et al.~\cite{huForecasting2020}通过加深ESN的隐藏层结构,提出了一种深度的ESN时间序列预测建模,并在电力需求预测任务和风力预测任务中进行了应用研究。 针对ESN预测模型的参数选择问题,Chouikhi et al.~\cite{chouikhiPSObased2017}利用PSO对ESN预测模型的随机化权重进行训练与优化,从而提升ESN预测模型的预测性能。 在此基础上,Li et al.~\cite{liPSObased2019}建立了一个多循环池结构的ESN预测模型,通过PSO和奇异值分解对循环池权重进行训练和优化后再依次将其加入ESN网络结构中,以此进一步提升ESN的预测表现。 此外,由于ESN模型的内在随机机制,ESN预测模型的神经网络结构成为了影响其预测性能的重要因素。 针对ESN预测模型的神经网络结构构造问题,众多研究者进行了相关研究。例如,Xue et al.~\cite{xueDecoupled2007}发现ESN网络隐藏层神经元的紧密耦合使得,使得模型无法较好学习出不同尺度的时间序列特征。针对此问题,Luko{\v s}evi{\v c}ius et al.\cite{lukovsevivcius2009reservoir}将ESN网络的隐藏层分割成多个子网络,降低了隐藏层神经元间的耦合效应(Coupling effect)。基于Xue et al.~\cite{xueDecoupled2007}的工作,Qiao et al.~\cite{qiaoGrowing2017}通过向ESN隐藏层中递归添加子网络的方式逐渐加宽其隐藏结构,同时利用最小二乘法全局更新网络输出层权重,构造出生长回声状态网络(Growing echo state network,GESN)预测模型,解决了多子网络ESN模型隐藏层结构的设计问题。 但随着隐藏层的不断加宽,全局更新输出权重的加宽构造方法会显著增大输出权重计算时出现病态问题的可能性,从而破坏模型的拟合能力与预测稳定性\cite{yangDynamical2019}。 为解决此问题,Yang et al.\cite{yangDynamical2019}通过向GESN输出权重计算中的最小二乘方法加入$L_2$正则项,以岭回归的闭式计算方法求解GESN输出权重。 Li et al.\cite{liPSObased2019} 通过引入GESN迭代构造过程中的预测误差反馈,基于迭代局部更新的方式降低了输出权重计算时发生病态问题的可能性。 与GESN的加宽机制不同,Gallicchio and Gallicchio~\cite{gallicchioDeep2017}提出了一种多层隐藏结构的深度回声状态网络(Deep echo state network,DESN),提升了ESN模型的学习建模能力。进一步地,Gallicchio et al.~\cite{gallicchioDesign2018}给出了DESN的经验设计方法。Huang et al.\cite{huangFunctional2021}提出了一种双层优化算法,通过分别优化DESN的神经网络结构参数与权重参数的方式进一步提升DESN模型性能。 GESN和DESN的结构差异如\autoref{fig:ch.intro.esns}所示。 \begin{figure*}[t!] \sbox\twosubbox{% \resizebox{\dimexpr.9\textwidth-1em}{!}{% \includegraphics[height=3cm]{float/ch.intro/gesn.png}% \includegraphics[height=3cm]{float/ch.intro/desn.png}% }% } \setlength{\twosubht}{\ht\twosubbox} \centering \subcaptionbox{\label{fig:ch.intro.gesn}GESN结构}{\includegraphics[height = \twosubht]{float/ch.intro/gesn.png}} \quad \subcaptionbox{\label{fig:ch.intro.desn}DESN结构}{\includegraphics[height = \twosubht]{float/ch.intro/desn.png}} \caption{\label{fig:ch.intro.esns} GESN与DESN结构示例} \end{figure*} 相比循环结构的SDNN预测建模技术研究,基于卷积结构的SDNN预测建模研究则更为薄弱 。He et al.~\cite{hePowerful2016}首先发现了基于随机卷积核的VGG构型\footnote{{https://www.robots.ox.ac.uk/~vgg/research/very\_deep/}}~\cite{simonyanVery2015}CNN在纹理生成(Texture synthesis)和风格迁移(Style transfer)等任务上具有不亚于梯度下降训练CNN的表现。受此启发,Antognini et al.~\cite{antogniniAudio2019}发现了基于一维卷积结构的随机CNN模型在音频纹理生成任务上同样可以达到与训练CNN一样的性能。进一步地,Yu et al.~\cite{yuImpact2019}在合成时间序列数据集和煤气供应数据集等现实时间序列数据集上进行了一维随机CNN的预测建模实验,展示了随机映射方法在CNN预测建模技术中的可行性。 由此,针对时间序列深度学习预测技术模型选择挑战中的低效问题,构造基于随机映射的深度学习预测建模技术是一种有效的解决途径,既可以兼具深度学习建模技术优异的预测潜能,又可以利用随机映射技术收敛快、效率高的优势,从而高效灵活的解决深度学习预测建模技术的模型选择效率问题,为时间序列深度学习预测建模技术的实际应用和发展提供支撑。 然而,基于随机映射方法的预测建模研究,尤其是SDNN预测建模研究,仍有一些突出的问题和限制。这些问题对于不同的神经网络结构,如卷积结构和循环结构,呈现出不同的复杂表现。 例如,相较于梯度下降方法,随机映射方法在提升模型建模效率的同时,因其输入层和隐藏层权重参数的随机性,不可避免地在一定程度上降低了模型的预测性能,这种现象对于具备复杂表征结构的卷积结构SDNN预测模型而言尤为突出,如何设计一种卷积结构SDNN预测模型构造与选择方法以保持模型建模效率与预测性能的平衡性是基于卷积结构的SDNN预测建模技术研究中的重要问题。 又如,现有循环结构SDNN预测模型(即ESN预测模型)的研究主要集中于隐藏神经网络结构的设计与优化\cite{liPSObased2019,chouikhiPSObased2017},而输出结构选择问题尚未有关注。在ESN预测模型的输出结构设计中,存在诸多问题,如基于梯度下降方法所构造的RNN模型输出结构是否适用于随机映射方法下的循环结构建模技术和方法,这些输出结构对于ESN模型输出结构的优化有何启示,如何选择与优化ESN预测模型的循环输出结构等。这些问题是基于循环结构的SDNN预测建模技术研究中的重要问题,需要进一步研究和探索。 再者,时间序列输入特征的选择问题是以CNN与RNN为代表的不同结构DNN预测建模技术共性问题,如何将深度神经网络结构与时间序列输入特征有效结合,从而建立兼容不同结构SDNN预测模型的特征选择方法,是进一步系统提升SDNN预测模型性能的关键。 此外,基于不同结构的SDNN预测建模有着不同的特性和适用场景。单一特定结构下的SDNN预测建模与优化方法难以适应复杂多变的现实时间序列预测需要。如何集成多种深度神经网络结构的优势,针对不同的时间序列预测建模场景,自适应地选择合适的神经网络结构及其参数,从而建立SDNN预测模型混合结构下的构造与优化技术,亦是基于随机映射的深度学习预测建模技术研究及其应用中的关键问题。 因此,为解决现有深度学习预测建模技术与随机映射方法的不足,本文将在时间序列深度学习预测建模技术与随机映射方法相关研究的基础上,尝试设计SDNN预测模型的新颖构造方法,以消除传统迭代训练的DNN预测模型所带来的低效性问题和随机映射方法在DNN网络结构上的不稳定性,同时建立与预测问题和预测模型相适应的模型选择算法, 探索具备高效自适性、理论创新性和良好应用性的SDNN时间序列建模技术。 本研究在一定程度上推动深度学习预测模型理论发展,充分挖掘随机映射方法在时间序列深度学习预测建模技术中的性能潜力,具有一定的理论创新意义和良好的现实应用意义。 ================================================ FILE: body/chapter/univ.tex ================================================ \chapter{时间序列预测建模框架 % \footnote[11]{ % 本章成果已开源在:https://github.com/Analytics-for-Forecasting/OpenForecasting. % } \label{sec:chapter.univ} } \section{引言} 时间序列预测建模技术是能源、交通、金融和工业生产等众多重要现实管理应用领域的重要支撑技术。 在不同场景中,时间序列数据表现出动态机制不确定、模态表现不相同、数据规模不一致的高度复杂特征。 因此,时间序列预测问题是一项颇具挑战和相当复杂的问题。 如何针对不同场景构造准确、稳定和鲁棒的时间预测模型是众多研究者与工作者所关注的重要课题。 针对时间序列预测建模问题,各种预测建模技术推陈出新。其中,以深度神经网络为代表的深度学习预测建模技术因其优异的预测性能成为了近年的研究热点,涌现出大量基于深度神经网络模型的技术应用研究\cite{wuImproved2019,zhaoDeep2017,sezerFinancial2020,caiDayahead2019,lindbergLongterm2019,shiDeep2018,laptevTimeseries2017,wangTraffic2016,xiaoShortterm2019}。 但在复杂多变的不同应用场景中,这些深度学习预测建模方法往往无法给予稳定的性能保证和一致的性能优势。 原因在于,作为一种基于复杂神经网络结构构造的学习预测模型,深度学习预测模型往往具有远超传统机器学习方法或统计方法的参数设置,同时,传统深度学习预测模型的梯度下降迭代训练权重参数方法进一步降低了模型构造的效率, 使得深度学习预测模型的构造过程面临建模效率低、模型选择难的问题。 作为深度学习预测建模技术应用与发展的关键,深度学习预测模型的高效构造与选择问题受到学术界与工业的广泛关注。为便捷构造深度神经网络模型,Google、Meta(Facebook)和Microsoft分别推出了TensorFlow\cite{abadiTensorflow2016}、Pytorch\cite{paszkePytorch2019}和CNTK\cite{seideCNTK2016}等神经网络模型构造框架,通过封装常用深度神经网络基础结构(如卷积核结构、循环层结构和线性结构),集成多种先进梯度下降训练算法和矩阵运算与处理算法,为深度学习模型的深入研究与广泛应用提供了框架。 为解决深度学习模型复杂的超参数搜索与优化问题,Bennet等\cite{bennetNevergrad2021}提出了一种开放优化框架Nevergrad,通过内置贝叶斯优化、粒子群优化和差分进化等优化算法为深度学习模型参数搜索与优化提供了便利平台。 Akiba等\cite{akibaOptuna2019}基于贝叶斯类优化方法提供了一套运行定义(Define-by-run)模型的优化框架OPTUNA,通过更个性化的搜索空间定义接口,支持搜索范围可根据采样结果自适应变动的复杂搜索设置。 Liaw等\cite{liawTune2018}通过集成Nevergrad和OPTUNA等优化框架,提供了一套内置多种优化算法的分布式优化平台Ray,进一步提高了模型参数优化的效率。 然而,这些建模与优化框架技术主要关注于广义建模技术中的特定环节,欠缺针对时间序列预测领域的建模考量。 在面对复杂多变的时间序列管理应用预测需求中,仅依托于建模技术中的某一环节构造预测建模对于提升模型准确性、提高模型构造与选择效率、适应运营管理水平是不够的。 因此,本章节基于前述各章在随机映射深度学习预测建模技术模型构造、隐藏结构优化、多输出结构优化和多输入特征选择等研究的基础上,设计出一套时间序列预测建模框架。 通过整合既有的优秀神经网络建模框架与参数优化框架,针对时间序列预测问题,设计符合时间序列数据的数据定义与处理机制,完备包含时间序列预测建模的数据初始化、数据预处理、模型构造、模型优化和模型评价等构造与评价流程,集成多类别、多结构的现有对比预测方法,基于高度模块化和接口标准化的规范,使得用户能够较好地节约开发精力、复现已有工作、探索全新思路和解决预测问题。 % 制约了深度学习预测模型的应用与发展。 \section{框架需求分析} 为应对不同场景下动态机制不确定、模态特征不相同、数据规模不一致的时间序列数据预测问题,基于数据驱动,构造自适应优化输入特征结构、模型隐藏结构与输出结构的时间序列预测模型,并呈现模型训练与预测效果的强弱程度,时间序列预测建模框架应当至少满足以下几点需求: \subsection{数据管理功能} 深度学习预测建模技术的基础是大量的时间序列数据。 时间序列数据高效与准确的处理以及统一的特征表示是构造普适结构深度学习预测模型的基础。 然而,基于数据来源的场景与获取方式的不同,时间序列预测建模框架所面临的时间序列数据往往表现出不同的数据存储格式(如json、txt、csv和xlxs等文本格式)、时间粒度(如分钟、小时、日、周和月等)、数据缺失与异常情况(如WTI原油价格在2020年4月20日收盘时价格报-37.63)等数据表示。 针对不同的时间序列预测建模技术,模型受入的时间序列数据结构也并不尽同,如本文第5章节所述,支持向量机(SVM)与多层感知机(MLP)的多输入时间序列数据结构为包含样本数与特征维度的二维结构,而卷积神经网络(CNN)和循环神经网络(RNN)的多输入结构为包含样本数、时步维度和输入步长的三维结构。 因此,时间序列预测建模框架需要基于异构时间序列数据,提供差异化的数据读取功能,并针对不同类别的时间序列预测建模方法,提供差异的数据特征表示,而针对相同类别的预测建模方法,则需要提供统一的数据表示。同时,在此基础上需提供一致的数据预处理和后处理操作,以方便不同方法间的比较、展示与分析。 \subsection{模型构造功能} 构造时间序列预测模型是预测建模框架的核心功能。 然而,受时间序列输入数据特征、模型自身参数和预测时长等因素的影响,预测模型在不同的时间序列预测任务上的表现可能有所差别。如本文第4章所述, % \autoref{sec:ch.esn.result} 节4.3 中的实验结果表明,即使是同一预测任务上相同编码结构的回声状态网络(ESN)预测模型,受不同多输出结构的影响,多步预测性能亦表现出了明显差异。再如本文第3章所述, % \autoref{sec:ch.eto.ablation} 节3.3 中的消融实验结果表明,通过对随机映射子网络的权重参数施加训练,可进一步提升模型预测性能。 此外,为分析所构造预测模型的预测性能,丰富多样的对比预测模型是必要的,从而客观评价所构造模型的优劣。 因此,时间序列预测建模框架需要单元化、模块化和标准化的模型结构设计,以满足模型高度自定义的构造需求。同时,框架应包含多类别、多结构的优秀对比方法,为判断预测模型性能提供依据,从而适应不同预测任务的需要。 \subsection{模型优化功能} 解决时间序列预测模型的模型选择问题,优化所构造的预测模型是提升模型预测准确度从而增强模型应用性的关键。 然而,不同预测模型建模方法的参数搜索优化空间各不相同,不同参数优化方法适应解决的优化问题也不相同。例如,作为群体智能优化算法的代表之一,粒子群优化(PSO)算法被应用于解决本文第4章节ESN预测模型的状态掩码优化问题,但不适用于解决第5章节所述的多输入特征结构优化问题。甚至,同一预测建模方法在不同预测任务上的参数搜索空间与优化算法设置亦不相同。 因此,时间序列预测建模框架需要在标准化设计的模型接口基础上,提供多种优秀的优化算法,根据不同的时间序列预测任务情形,智能、高效和便捷地解决模型结构参数优化、多输出结构优化和多输入特征选择等模型选择问题,从而提高模型预测精度,进一步建立与任务情形相匹配的预测模型。 \section{框架结构设计} 根据时间序列预测任务的需要,融合既有模型构造与选择框架的优势\cite{paszkePytorch2019,liawTune2018},本章节设计并开源提供了一套名为“OpenForecasting”的预测建模框架。 该框架基于Python这一动态语言,充分利用Python类的继承与多态特征,通过对Pytorch与Ray的封装,提供数据处理高度个性化、模型高度模组化、接口高度标准化的交互功能,基于完备的预测建模流程逻辑,有效地实现复杂时间序列数据的预测建模任务。 这种框架结构有利于用户通过定义符合接口标准的模组,扩展现有方法或功能,满足更复杂的预测建模需求。 具体地,“OpenForecasting”预测框架主要通过TaskWrapper实现预测建模流程控制,利用TaskLoader实现数据载入与预处理,基于TaskTuner实现预测模型优化,辅以统一接口的模型库和优化方法库,完成预测建模。 \subsection{预测流程控制} 在本框架设计的TaskWrapper类中,基于接收用户指定的预测任务数据名称、预测时长、预测模型等预测任务信息,通过嵌套与调用数据加载、模型选择、模型预测和模型评价功能,自适应地完成时间序列预测模型的构造、优化与评价。 \input{float/ch.univ/wrapper.tex} \autoref{fig:ch.univ.task}展示了“OpenForecasting”预测建模框架的流程控制主文件:task.py。 通过接收用户传入的数据集名称、模型名称、预测时长、重复执行次数和预测准确度指标等任务信息,Task类在初始化时完成如\autoref{fig:ch.univ.init}所示的数据预处理与加载、模型参数初始化和实验日志初始化过程。 以本文第4章节中ESN模型在MG数据集上的预测建模实验为例,用户可采用如\autoref{fig:ch.univ.bash}所示方式,通过自定义task主文件显式指定任务参数,构造基于MG数据集、预测时长为17、重复实验次数为20、预测评价指标为RMSE、NRMSE和MAPE的ESN预测模型,并利用“task.tuning”函数完成ESN模型的参数优化,在优化结果的基础上更新模型预设参数,通过“task.conduct”函数进行预测建模,最终基于“task.evaluation”函数完成模型在各评价指标上的结果统计,获取对应指标的平均值和标准差等统计信息。用户亦可采用如\autoref{fig:ch.univ.bash}所示的命令行传入参数方式,完成相同预测建模任务。此外,通过执行多个传入不同参数的task.py程序,用户可通过并行的方式针对同一预测建模任务构造不同的预测模型,亦可基于相同的预测模型完成不同的预测建模任务,显著提高了用户使用的便利性。 \subsection{数据预处理与加载} 为应对不同数据存储结构的时间序列数据,适应不同输入步长设置、不同预测时长设置的时间序列预测任务需要,本框架通过设计TaskLoader中的TaskDataset父类,为不同时间序列数据提供加载接口。在转换得到统一数据格式的时间序列数据后,对数据进行归一化和数据集切分处理,完成预测建模任务的数据预处理与加载过程。 \input{float/ch.univ/loader.tex} \autoref{fig:ch.univ.data}展示了“OpenForecasting”预测建模框架的TaskDataset父类,通过提供“info_config”与“sub_config”接口,使得用户可针对不同数据与任务情形,创建继承TaskDataset的Data子类,通过重构“info_config”与“sub_config”函数,灵活处理源数据以返回符合框架标准的加工数据。 以本文第3章节中在GEF数据集上的预测建模实验为例,用户可采用如\autoref{fig:ch.univ.gef}所示方式,创建继承TaskDataset的gef_data子类, 在重构的“info_config”函数中指定了预测任务的归一化方法、输入步长、子时间序列数据名称等基础数据信息。 继而,在重构的“sub_config”函数中,针对以“xlsx”文件格式存储的电力负荷数据,利用pandas数据分析工具\footnote{https://pandas.pydata.org.},构造出输入时步为168、提取出“ME”、“NH”、“VT”、“CT”、“RI”、“SEMA”、“WCMA”和“NEMA”共8个不同地区的电力负荷数据,基于TaskDataset父类提供的“pack_dataset”函数完成对子时间序列数据的预处理。 \subsection{模型初始化与构造} 预测模型的构造是预测框架中最为核心也是最为复杂的部分。为应对不同模型的不同参数设置与结构设置需求,高效兼容各类模型以完成参数初始化、模型构造与模型优化等流程,本框架通过基于结构模组化、输出标准化和参数接口化的设计思想,耦合模型参数接口和结构构造接口,统一预测模型输入输出标准,使得用户可针对不同需求灵活定义模型的相关参数或功能,实现模型的高效扩展,从而满足预测建模任务的需要。 \input{float/ch.univ/model.tex} \subsubsection{结构模组化} 基于Pytorch框架自动差分、硬件加速和扩展性强等优势\cite{paszkePytorch2019},本框架对Pytorch框架提供的神经网络单元结构进行了封装,建立出常用的深度神经网络结构模组,进一步增强了用户构造深度神经网络预测模型的可读性、便利性与扩展性。 例如,\autoref{fig:ch.univ.esncell}展示了基于Pytorch框架实现的ESN单元模组。而后,调用ESN单元模组循环读取时间序列输入特征,实现出如\autoref{fig:ch.univ.esnlayer}所示的ESN编码过程模组。 类似的,以本文 % \autoref{sec:ch.eto.mix} 第5章 中所构造的回声状态卷积结构和卷积回声状态结构为例,通过如\autoref{fig:ch.univ.mix}所示的简洁模组调用方式,即可建立出耦合卷积结构和回声状态结构的神经网络混合结构。 通过本框架对深度神经网络结构的模组化,用户得以快捷构造出所需模型。 \subsubsection{输出标准化} 尽管不同预测建模技术所构造出的模型结构可能有较大差别,但在相同的预测任务下,这些模型的预测输出结果应当具有相同的数据结构形式。基于此,本框架通过统一预测模型的拟合过程接口,在不同预测模型方法间建立出一种标准化的输入输出规范,从而为框架的模型优化与评价功能奠定基础。 具体地,本框架通过Python类的形式构造具有标准输出形式的不同预测模型。 以\autoref{fig:ch.univ.esn}所展示的ESN模型为例,具体说明本框架的模型输出标准化思想。 对于本框架所实现的预测模型,在类初始化“__init__”阶段,均会被赋予一个记录模型拟合信息的属性“fit_info”。而后,通过“xfit”函数,模型将读取数据预处理与加载环节切分出的训练集与验证集数据(对应\autoref{fig:ch.univ.esn}中第15与16行),用于训练模型相关参数和验证模型效果(对应\autoref{fig:ch.univ.esn}中第17至24行),并将对应的训练集误差与验证集误差保存在“fit_info”中(对应\autoref{fig:ch.univ.esn}中第26与17行),供流程控制程序进行下一步的优化或评价工作。 \input{float/ch.univ/tune.tex} \subsubsection{参数接口化} 如\autoref{fig:ch.univ.mb}所示,本框架通过设计模型参数设置的Model_base父类,为框架内的每个模型提供hyper、tuner和tuning三种属性以及“base_init”、“setting_init”和“setting_modify”三种函数接口,将模型的结构超参数设置、优化器参数设置与参数优化结果进行单独管理。 \autoref{fig:ch.univ.esn_base}展示了基于Model_base父类的esn_base子类,通过重构Model_base中的“base_init”函数,将该子类与对应路径下存储的ESN模型结构类进行匹配;通过调用与重构“setting_init”函数,为ESN模型提供了隐藏层数量为400、激活函数类别为“sigmoid”、输入与隐藏层权重随机初始化分布为\([-0.1,0.1]\)和\([-1,1]\)、隐藏状态读取步长为2的基本参数。 通过这种方法,用户可以通过在子类中修改“base_init”函数,使得多个不同模型共享一套参数设置,从而更好观测相同参数设置不同模型结构的预测模型性能差异。用户亦可通过共享父类中的“base_init”和“setting_init”函数,自定义“setting_modify”函数,实现相同模型结构不同模型参数的预测模型,从而满足预测建模实验分析的需要。以本文第4章节中构造基于GEF数据集的全连接解码器(FCD)和堆栈结构(STK)ESN预测模型的实验为例,如\autoref{fig:ch.univ.read}所示,通过重构“setting_modify”函数调整隐藏状态读取步长,利用Python语言中的多态形式,便捷构造出了FCD-ESN和STK-ESN预测模型。 此外,用户通过设置或修改tuner和tuning相关参数,可灵活调整优化器的计算资源分配与搜索空间,从而优化利用当前计算资源条件,满足差异化的建模任务要求。 具体地,\autoref{fig:ch.univ.tune}展示了一种优化器资源与搜索空间参数的设置示例。 结合本文 第 % \ref{sec:chapter.dfs} 4 章中基于AMD 5950X CPU(16核32线程)与三卡Nvidia RTX A4000 GPU的计算条件,tuner的参数表明:优化算法为TPE算法,TPE算法最多采样次数为200,优化过程以并行计算的方式加速进行,单个模型程序占用5个CPU线程与半张GPU计算卡资源,模型并发数为6;tuning的参数指代:ESN模型输入权重分布参数的搜索边界为\([0.00001, 0.1]\),隐藏层权重缩放参数搜索边界为\([0.2, 0.99]\),激活函数的选择范围为\(\{sigmoid, tanh\}\),隐藏层神经元数量的选择范围为步进50,边界为500和1500的数列\(\{500, 550, 600, \ldots, 1500\}\)。 \input{float/ch.univ/method.tex} \subsection{模型选择与优化} 利用Ray框架所提供的丰富优化算法与并行计算机制,在前述设计思想的基础上,本框架对Ray框架提供的优化接口结合预测建模任务背景进行了封装,建立出适用于解决时间序列预测建模技术模型选择问题的优化平台,从而为不同预测模型提供模型选择与优化功能,进一步满足用户对于模型预测性能的要求。具体地,本章节通过如\autoref{fig:ch.univ.ray}所示的优化器TaskTuner示例,详细说明本框架的模型选择与优化过程。 在TaskTuner类的“__init__”阶段,通过接收参数“opts”,数据集包“subPack”和实验日志“logger”完成优化器的初始化。其中,“opts”即为如\autoref{fig:ch.univ.tune}所示构造的模型参数类,通过\autoref{fig:ch.univ.ray}中第12行所示的"merge"操作,将模型的hyper、tuner与tuning等参数信息传递给TaskTuner类,从而确定模型初始参数、优化器参数和参数搜索空间等设置。 “subPack”为如\autoref{fig:ch.univ.data}所示经预处理的数据文件,从而传入模型训练与验证所需的训练集与验证集数据。此外,如\autoref{fig:ch.univ.data}中第22行至26行,TaskTuner类通过调用“algo_init”函数,完成以优化算法的初始化。显然,本框架用户可以通过重构“algo_init”函数,灵活修改或扩展优化算法种类,从而满足不同优化场景的需要。 TaskTuner类的优化过程执行阶段,如\autoref{fig:ch.univ.data}中第41行至50行,利用前述输出标准化与参数接口化的设计思想与规范,通过对模型初始化与构造的封装,确定优化控制器ray_tuner的适应度“fitness”函数,通过模型tuner参数中的相关设置,完成ray_tuner的初始化。 在如\autoref{fig:ch.univ.data}中第48行所示的优化过程中,基于模型tuning属性所定义的参数空间“param_space”(对应\autoref{fig:ch.univ.data}中第44行),ray_tuner会对被优化的参数进行采样或更新得到新的参数解,这些解以“fitness”函数的“config”形式传递给模型的既有参数集合“_hyper”,并对“_hyper”进行更新,而后基于更新后的参数集合构造预测模型,通过模型“xfit”函数所界定的标准化输入输出形式,得到模型在当前参数下的训练集误差与验证集误差。这些误差被汇报给ray_tuner以进行下一轮参数采样或更新过程,在完成最大迭代次数后,返回模型的最优参数。 基于本节所述的框架结构设计方式,如\autoref{tab:ch.univ.methods}和\autoref{tab:ch.univ.optim}所示,本框架提供了多种预测建模技术与方法,使得用户可在预测建模实验中对比分析所提模型与既有模型间的性能差异,找寻不同预测模型结构或智能优化方法在所选预测任务上的优劣,从而启发出更多预测建模方法,进一步提高解决时间序列预测建模问题的能力与水平。 \begin{figure}[t!] \centering \includegraphics[width=0.8\textwidth]{float/ch.univ/flow.png} \caption{框架逻辑流程图\label{fig:ch.univ.flow}} \end{figure} \section{框架逻辑流程} \autoref{fig:ch.univ.flow}展示了本框架的逻辑流程图。该流程图中的步骤说明如下: (1)用户下达预测任务。基于不同的时间序列预测任务情形,用户收集到所需的时间序列源数据。这些源数据可以是以“txt”、“xlsx”、“csv”和“json”等格式保存的本地文件,也可以是存储在本地或云端数据库系统中的数据库文件。 (2)数据预处理与加载。基于所收集到的源数据,定义继承TaskDataset父类的数据文件Data子类,通过重构“info_config”函数完成时间序列预测任务的基础数据信息设定,利用“sub_config”函数抽取出预测任务所需的时间序列数据,并结合与“info_config”中的信息设定相匹配的预处理方法,完成时间序列数据的异常值处理、归一化、数据集切分等预处理工作,打包预处理数据与对应信息设定并予以加载。 (3)模型初始化与构造。基于使用本框架目标的不同,用户可从内置预测模型方法中选择出合适的模型或自行构造新的模型。针对所选择或设计的模型构造方法,定义继承Model_base父类的模型参数Model子类,通过修改“base_init”函数指定模型构造方法的保存路径与模型类名,通过修改“setting_init”或“setting_modify”函数指定模型参数的初始化设置、模型搜索空间设置和优化器参数设置等参数信息。而后,框架将基于已加载的数据信息和已指定的模型参数信息,自动完成模型的初始化与构造工作。 (4)模型选择与优化。基于已加载的训练集与验证集数据以及已指定的模型参数搜索空间和优化器参数等设置,框架将自动分配计算资源,调用优化器高效进行模型选择过程,完成模型参数的优化。该优化过程不仅包含模型隐藏层神经元数量、激活函数种类和隐藏层层数等模型结构参数,通过本文第5章节所提出的二重特征结构及其编码表示方法,多输入特征选择与优化亦被囊括在内。同时,用户可重构TaskTuner类的“algo_init”函数,灵活选取不同的优化算法,进一步提高模型预测性能。 (5)模型预测结果汇报。基于已加载的测试集数据和已优化的预测模型,框架将基于所设置的重复试验次数与指定的预测准确度指标,自动完成模型测试,并整理模型在当前设置下的预测结果,详细汇报出各预测准确度指标的平均值、标准差、时步误差曲线等信息,同时提供Naive方法的测试结果以做基准参考。若未达预期,则可通过修改模型结构设计、参数搜索空间和优化算法选择等设置,继续调整模型直到符合预期,最终保留模型与预测结果。 \section{小结} 面对复杂多变的时间序列预测需求,为提升时间序列预测建模技术的集成水平与运行效率,本章节在已有优秀模型构造框架与参数优化框架的基础上,设计并开源了一套兼具高集成度与强扩展性的时间序列预测建模框架“OpenForcasting”。 通过对时间序列预测建模框架的用户需求分析,归纳出包含数据管理功能、模型构造功能与模型优化功能在内的核心需求功能,完成了时间序列预测建模框架的系统结构设计与逻辑流程设计。 基于此,本框架内置了不同类别的多种优秀预测模型方法,通过良好的接口设计规范,使得用户能够灵活处理不同结构的时间序列源数据,设计模型结构,调整模型参数和选择优化算法,从而更好解决时间序列预测问题。 ================================================ FILE: body/cover.tex ================================================ %%% Local Variables: %%% mode: latex %%% TeX-master: t %%% End: \ctitle{基于随机映射的时间序列深度学习预测建模技术} \xuehao{D201880***} % \xuehao{D201880970} \schoolcode{10487} \miji{\hei\textbf{公开}} \csubjectname{管理科学与工程} \cauthorname{张心泽} \csupervisoronename{{鲍玉昆}} \csupervisoronetitle{教\hspace{1em}授} % 若存在第二指导老师,请取消下列注释。取消后,将自动显示第二导师。 % \csupervisortwoname{{李\hspace{1em}四}} % \csupervisortwotitle{副教授} \defencedate{2023~年~4~月~26~日} \grantdate{} \chair{}% \firstreviewer{} \secondreviewer{} \thirdreviewer{} \etitle{Stochastic Deep Learning Based Time Series Forecasting Techniques} \edegree{Doctor of Philosophy in Management} \esubject{Management Science and Engineering} \eauthor{Zhang Xinze} \esupervisorone{Prof. Bao Yukun} % 若存在第二指导老师,请取消下列注释。取消后,将自动显示第二导师。 % \esupervisortwo{Assoc. Prof. Li Si} \edate{April, 2023} \dctab{\begin{tabular}{|P{0.9cm}|P{1.8cm}|P{1.8cm}|P{5.4cm}|} \hline &{\hei\textbf{姓名}}&{ \hei\textbf{职称}}&{\hei \textbf{单位}}\\ \hline 主席&X\hspace{1em}X&教授&武汉大学~信息管理学院\\ \hline \multirow{4}{*}{委员}&X\hspace{1em}X&教授&武汉大学~信息管理学院\\ \cline{2-4} &XXX&教授&华中科技大学~管理学院\\ \cline{2-4} &XXX&教授&华中科技大学~管理学院\\ \cline{2-4} &X\hspace{1em}X&教授&华中科技大学~管理学院\\ \hline \end{tabular} } %定义中英文摘要和关键字 \cabstract{ 时间序列预测建模技术是能源、金融和公共卫生等众多应用领域的重要技术。针对时间序列预测建模问题,深度学习预测建模技术因其优异的预测性能成为了近年的研究热点。然而,以卷积神经网络和循环神经网络为代表的深度神经网络预测模型受限于梯度下降权重训练方法,需要在反复训练权重参数的基础上才可具备优异的预测性能,因此带来昂贵的计算消耗;加之深度学习预测模型复杂的结构参数设置,使得深度学习预测建模技术面临建模效率低与模型选择难等问题。随机映射方法作为神经网络模型的一种非迭代训练方法,通过固定模型随机初始化的输入层与隐藏层权重,利用简单直接的闭式求解算法计算模型输出层权重,以此完成权重参数训练过程,因而可有效提升神经网络模型的构造效率。 本学位论文基于随机映射方法对时间序列深度学习预测建模技术展开研究,针对随机深度神经网络预测模型在卷积结构和循环结构上的模型选择特有个性问题,提出随机卷积隐藏结构的构造优化方法和随机循环输出结构的构造优化方法;在此基础上探索随机深度神经网络特定代表结构的共性优化问题,提出随机深度神经网络预测模型一般结构下的二重特征选择方法和混合结构下的生长优化方法,进一步提升模型预测性能;在技术方法研究的同时,结合流感阳率预测、原油价格预测、电力负荷预测与电力价格预测等重要应用场景进行应用研究。本文的主要研究工作和创新性成果如下: 首先,针对卷积结构的随机深度神经网络预测模型构造与优化问题,提出基于误差反馈随机建模和贪心优化的新颖构造与优化方法,解决了既有方法的参数选择不足及输出权重病态矩阵难题。通过向隐藏层中递归添加随机卷积核,利用最小二乘法局部更新输出权重,构造出随机卷积隐藏结构,并证明了该构造方法的收敛性;借助贪心搜索优化卷积核参数,使其在单卷积层内自适应选择不同宽度的卷积核,具备了不同尺度局部特征的学习能力。在合成数据和多项现实数据上的实验表明,该模型具有极高的模型构造与选择效率,表现出与梯度下降训练的深度学习预测模型媲美甚至更优的预测性能。 其次,针对循环结构的随机深度神经网络预测模型构造与优化问题,提出了基于状态遮掩和粒子群优化的新颖构造与优化方法,解决了既有方法忽视的输出结构优化问题。基于对循环神经网络输出结构的随机映射实现,分析得出不同输出结构的异同优劣;通过向循环隐藏特征表示施加状态掩码,提出状态遮掩的随机循环输出结构,借助粒子群优化自适应选择循环隐藏特征表示和目标的映射取舍,提升了输出结构的学习能力。在人工合成、电力负荷和室外温度数据集上的实验表明,与既有随机循环神经网络及其输出结构优化方法相比,基于所提方法构造的模型具备明显的多步预测优势。 再次,针对一般结构的随机深度神经网络预测模型特征选择问题,提出了基于二重特征结构选择和树状结构帕森斯估计的新颖特征选择方法,消除了既有选择方法的一维输入特征结构局限。结合深度神经网络的时步多维度读取能力,利用滑动窗口构造时步多维度的二维输入特征结构;通过向每一输入时步添加时步掩码,建立基于时步维度与时步掩码组合的二重特征结构表示,借助树状结构帕森斯估计自适应优化特征结构参数,降低了抽象特征的学习难度。在人工合成、电力负荷和电力价格数据集上的实验表明,与既有卷积与循环结构随机深度神经网络及其特征选择方法相比,基于所提方法优化的模型具有更好的预测准确性与稳定性。 最后,针对混合结构的随机深度神经网络预测模型构造与优化问题,提出了基于误差反馈生长和三阶段优化的新颖混合结构构造与优化方法,消除了既有方法的单一结构局限。通过递归添加不同结构的随机子网络,利用岭回归局部更新输出权重,构造出鲁棒的混合隐藏结构,并证明了该构造方法的收敛性;通过预优化、子训练和调正则的三阶段优化方法对迭代添加的子网络进行完整优化,使其自适应选择出多种结构的子网络及参数,融合了不同深度结构的学习能力。在人工合成、空气污染和电力负荷数据集上的实验表明,与多种既有随机深度神经网络模型相比,基于所提方法构造的模型具有更好的预测性能。 } \ckeywords{时间序列预测;深度学习;随机映射;卷积神经网络;回声状态网络} \eabstract{ Time series forecasting is of great importance for a learning system in dynamic environments, playing a vital role in many real-world applications, such as energy, traffic, finance, and industry. Recent studies have shown that deep learning technique has shown intriguing prediction performance, leading to extensive research on the applications of the DNN models for time series forecasting. However, represented by the convolutional neural network and recurrent neural network models, the deep neural network--based forecasting models have complex architecture-related parameters and rely on gradient-based algorithms to train the weight-related parameters, making it extremely time-consuming and challenging to well establish a forecasting model. As an alternative method of training the neural network model, the stochastic mechanism fixes the weights of the input layer and the hidden layer after random initialization, and uses a simple and direct closed-form solution algorithm to calculate the weight of the output layer of the model, which can effectively improve the construction efficiency of the neural network model. Therefore, this study investigates time series deep learning prediction modeling technology based on the stochastic mechanism, pays attention to the structure selection problems under the specific structures, and proposes the hidden structure construction method of the stochastic convolutional neural network and the output structure selection method of the stochastic recurrent neural network. On this basis, the optimization problems under the universal structure are explored, and the feature selection method as well as the parameter optimization method of the stochastic deep neural network prediction model are proposed to further improve the prediction performance of the models. At the same time, the application research is carried out in combination with important application scenarios, such as influenza prediction, crude oil price prediction, electricity load prediction, electricity price prediction, and so on. The main contributions of this dissertation are summarized as follows: Focusing on the model construction problem of stochastic convolutional neural network--based forecasting model, a novel error-feedback stochastic modeling strategy and greedy-based selection algorithm are proposed to craft the random convolutional neural network for time series forecasting. The proposed method suggests that random filters and neurons of the error-feedback fully connected layer are incrementally added to steadily compensate for the prediction error during the construction process, and then a greedy-based filter selection is introduced to enable the model to extract the different sizes of temporal features. Comprehensive experiments on the simulated dataset and several real-world datasets show that the proposed method exhibits stronger predictive power and lower computing overhead compared to trained state-of-the-art deep neural network models. Focusing on the model construction problem of stochastic recurrent neural network--based forecasting model, a novel state mask strategy with particle swarm optimization is proposed to construct the random recurrent output structure for time series forecasting. Based on the investigation of the stochastic implementation of different recurrent output structures of training-based recurrent neural networks, the proposed method adds a mask to each step of the recurrent hidden features, and then a particle swarm optimization based mask selection is introduced to evolve the mapping relationships from recurrent hidden features to their targets, which improves the learning ability of the stochastic recurrent output architecture. Compared with the stochastic recurrent neural networks with the existing output architecture selection method, comprehensive experiments on the simulated dataset, electricity load dataset, and outside temperature dataset demonstrate the superiority of the proposed method. Focusing on the input feature selection problem of stochastic deep neural network--based forecasting model, a novel dual feature-structured selection method with tree-structured parzen estimator is proposed. Based on the ability of deep neural architecture that can model multiple dimensions in each input time step, a multiple-step-dimension two-dimensional feature structure is established with a moving window schema. The proposed method adds a mask to each input step to represent the two-dimensional feature structure with the combination of step dimension and step mask, and then tree-structured parzen estimator is introduced to evolve the feature structure, which improves the learning ability of the stochastic deep neural networks. Compared with the stochastic deep neural networks with the existing feature selection method, comprehensive experiments on the simulated dataset, electricity load dataset, and electricity price dataset demonstrate the superiority of the proposed method. Focusing on the model construction problem of stochastic deep neural network--based forecasting model, a novel error-feedback triple-phase optimization strategy is proposed to grow stochastic deep neural network--based predictor with mixed deep neural architectures. The proposed method incrementally adds diverse deep subnetworks to the network, where the output weights of the subnetworks are calculated via ridge regression to improve the robustness of the constructed model, and the parameters of the subnetworks are evolved with pre-tuning, sub-tuning, and reg-tuning optimization, making the network take advantage of different deep neural architectures. Compared with the existing stochastic deep neural networks, comprehensive experiments on the simulated dataset, air pollution datasets and electricity load datasets demonstrate the superiority of the proposed method. } \ekeywords{ Time series forecasting; deep learning; stochastic mechanism; convolutional neural network; echo state network } ================================================ FILE: float/ch.cnn/data.tex ================================================ \begin{table}[!t] \centering \caption{数据集信息 \label{tab:app_data}} \begin{tabularx}{\textwidth}{lccccY} % \caption{数据集信息 \label{tab:app_data}}\\ \toprule 数据集名称 & 平稳性 & 趋势性 & 季节性 & 起始截止日期 & 数据集大小 \\ \midrule AR1 & \xmark & 0.97 & 0.09 & - & 500 \\ BTC & \xmark & 0.99 & 0.66 & 05/25/2020 $\sim$ 03/20/2021 & 2181 \\ ILI & \cmark & 0.51 & 0.61 & 01/15/2010 $\sim$ 04/15/2020 & 535 \\ BRENT-weekly & \xmark & 0.97 & 0.07 & 05/15/1987 $\sim$ 04/30/2021 & 1773 \\ BRENT-daily & \xmark & 0.97 & 0.06 & 05/20/1987 $\sim$ 05/03/2021 & 8620 \\ WTI-weekly & \xmark & 0.96 & 0.08 & 01/03/1986 $\sim$ 04/30/2021 & 1844 \\ WTI-daily & \xmark & 0.96 & 0.07 & 01/02/1986 $\sim$ 05/03/2021 & 8904 \\ S\&P 500 & \xmark & 0.99 & 0.40 & 12/31/2009 $\sim$ 11/15/2017 & 1984 \\ NASDAQ & \xmark & 0.99 & 0.27 & 12/31/2009 $\sim$ 11/15/2017 & 1984 \\ DJI & \xmark & 0.99 & 0.40 & 12/31/2009 $\sim$ 11/15/2017 & 1984 \\ NYSE & \xmark & 0.98 & 0.45 & 12/31/2009 $\sim$ 11/15/2017 & 1984 \\ \bottomrule \end{tabularx} \end{table} ================================================ FILE: float/ch.cnn/mape.tex ================================================ \begin{table}[!t] \centering \footnotesize \caption{ESM-CNN及对照组模型在原油价格与股票指数数据集上的MAPE结果 \label{tab:app_mape}} \resizebox{\textwidth}{!}{ \begin{tabular}{cccccccccccccc} \toprule \multirow{2}{*}{数据集} & \multirow{2}{*}{H} & \multicolumn{3}{c}{统计模型} & \multicolumn{3}{c}{梯度下降模型} & \multicolumn{3}{c}{随机映射模型} & \multicolumn{2}{c}{消融模型} & 所提模型\\ \cmidrule(l){3-5} \cmidrule(lr){6-8} \cmidrule(lr){9-11} \cmidrule(lr){12-13} \cmidrule(lr){14-14} && Naive & ARIMA& HWSES & GS-CNN& DeepAR& CLSTM & RVFL & IELM & SCN & Stoc-CNN & ES-CNN& ESM-CNN \\ \cmidrule(l){1-14} \multirowcell{3}{BRENT-\\weekly} & 1& 5.02e-01& 1.09e-01 & 1.17e-01 & 1.60e-01 & \bf{4.37e-02} & 8.25e-02& 5.88e-02 & 1.57e-01 & 5.74e-02& 1.93e+00 & 4.57e-02& \bf{3.97e-02}\s \\\cmidrule(l){3-14} & 4& 4.97e-01& 2.13e-01 & 2.37e-01 & 1.78e-01 & 9.32e-02& 1.15e-01& 1.19e-01 & 1.73e-01 & 8.67e-02& 2.87e+00 & \bf{7.78e-02} & \bf{7.49e-02}\s \\\cmidrule(l){3-14} & 8& 5.10e-01& 3.26e-01 & 3.69e-01 & 1.82e-01 & 1.77e-01& 1.85e-01& 1.81e-01 & 2.12e-01 & 1.43e-01& 3.70e+00 & \bf{1.14e-01} & \bf{1.11e-01}\s \\\cmidrule(l){2-14} \multirowcell{3}{BRENT-\\daily} & 1& 4.80e-01& 8.47e-02 & 8.92e-02 & 7.84e-02 & \bf{1.93e-02}\s & 3.51e-02& 2.14e-02 & 1.36e-01 & 2.01e-02& 5.06e-02 & 2.02e-02& \bf{1.99e-02} \\\cmidrule(l){3-14} & 5& 4.82e-01& 2.26e-01 & 2.45e-01 & 9.37e-02 & 3.48e-02& 4.44e-02& 3.92e-02 & 1.42e-01 & 3.50e-02& 8.78e-02 & \bf{3.42e-02} & \bf{3.37e-02}\s \\\cmidrule(l){3-14} & 10 & 4.88e-01& 3.99e-01 & 4.34e-01 & 9.50e-02 & 5.18e-02& 5.50e-02& 5.51e-02 & 1.49e-01 & \bf{5.10e-02} & 1.29e-01 & 5.37e-02& \bf{4.63e-02}\s \\\cmidrule(l){2-14} \multirowcell{3}{WTI-\\weekly}& 1& 4.71e-01& 9.99e-02 & 1.10e-01 & 2.26e-01 & \bf{5.49e-02}\s & 1.01e-01& 7.10e-02 & 2.34e-01 & 6.33e-02& 2.10e+00 & 6.27e-02& \bf{5.77e-02} \\\cmidrule(l){3-14} & 4& 4.78e-01& 2.06e-01 & 2.40e-01 & 2.47e-01 & 1.11e-01& 1.45e-01& 1.34e-01 & 2.53e-01 & 1.06e-01& 3.11e+00 & \bf{9.46e-02} & \bf{8.64e-02}\s \\\cmidrule(l){3-14} & 8& 5.11e-01& 3.18e-01 & 3.71e-01 & 2.46e-01 & 1.72e-01& 2.16e-01& 2.06e-01 & 2.81e-01 & 1.35e-01& 3.70e+00 & \bf{1.32e-01} & \bf{1.24e-01}\s \\\cmidrule(l){2-14} \multirowcell{3}{WTI-\\daily}& 1& 4.44e-01& 7.82e-02 & 8.33e-02 & 9.30e-02 & 2.11e-02& 3.62e-02& 2.15e-02 & 1.45e-01 & 2.14e-02& 7.24e-02 & \bf{2.08e-02} & \bf{2.06e-02}\s \\\cmidrule(l){3-14} & 5& 4.49e-01& 2.05e-01 & 2.21e-01 & 9.90e-02 & \bf{3.50e-02}\s & 4.65e-02& 4.14e-02 & 1.51e-01 & 3.67e-02& 1.22e-01 & 3.62e-02& \bf{3.57e-02} \\\cmidrule(l){3-14} & 10 & 4.60e-01& 3.57e-01 & 3.86e-01 & 9.96e-02 & 5.21e-02& 5.76e-02& 5.93e-02 & 1.58e-01 & \bf{5.20e-02} & 1.67e-01 & 5.99e-02& \bf{4.99e-02}\s \\\cmidrule(l){2-14} \multirow{3}{*}{S\&P 500}& 1& 1.50e-01& \bf{5.17e-03}& 8.26e-03 & 1.92e-02 & 1.28e-02& 4.88e-02& 8.82e-03 & 3.95e-02 & 1.18e-02& 1.73e+00 & 5.33e-03& \bf{4.06e-03}\s \\\cmidrule(l){3-14} & 5& 1.46e-01& 7.15e-03 & 1.10e-02 & 2.03e-02 & 1.87e-02& 7.20e-02& 1.91e-02 & 5.20e-02 & 2.20e-02& 1.09e+01 & \bf{7.03e-03} & \bf{6.17e-03}\s \\\cmidrule(l){3-14} & 10 & 1.48e-01& 8.91e-03 & 1.32e-02 & 1.94e-02 & 7.97e-02& 5.95e-02& 2.40e-02 & 4.65e-02 & 3.46e-02& 1.43e+01 & \bf{8.71e-03} & \bf{8.03e-03}\s \\\cmidrule(l){2-14} \multirow{3}{*}{NASDAQ}& 1& 1.77e-01& 7.16e-03 & 1.04e-02 & 2.84e-02 & 7.19e-03& 6.86e-02& 3.65e-02 & 5.78e-02 & 1.62e-02& 3.85e+01 & \bf{6.68e-03} & \bf{5.50e-03}\s \\\cmidrule(l){3-14} & 5& 1.73e-01& 1.03e-02 & 1.40e-02 & 3.09e-02 & 2.15e-02& 9.06e-02& 3.50e-02 & 6.12e-02 & 2.36e-02& 6.13e+01 & \bf{9.12e-03} & \bf{8.84e-03}\s \\\cmidrule(l){3-14} & 10 & 1.75e-01& 1.29e-02 & 1.73e-02 & 3.05e-02 & 1.53e-01& 8.47e-02& 3.52e-02 & 6.00e-02 & 4.35e-02& 6.43e+01 & \bf{1.15e-02} & \bf{1.13e-02}\s \\\cmidrule(l){2-14} \multirow{3}{*}{DJI} & 1& 1.35e-01& 5.24e-03 & 8.14e-03 & 2.36e-02 & 1.07e-02& 4.28e-02& 1.55e-02 & 4.73e-02 & 7.57e-03& 6.20e+00 & \bf{5.06e-03} & \bf{4.09e-03}\s \\\cmidrule(l){3-14} & 5& 1.31e-01& 7.53e-03 & 1.10e-02 & 2.54e-02 & 6.72e-02& 6.54e-02& 1.84e-02 & 4.72e-02 & 1.93e-02& 4.73e+00 & \bf{7.10e-03} & \bf{6.71e-03}\s \\\cmidrule(l){3-14} & 10 & 1.33e-01& 9.55e-03 & 1.34e-02 & 2.56e-02 & 3.74e-02& 6.64e-02& 3.60e-02 & 4.70e-02 & 3.89e-02& 7.16e+00 & \bf{9.14e-03} & \bf{9.06e-03}\s \\\cmidrule(l){2-14} \multirow{3}{*}{NYSE}& 1& 1.12e-01& 5.61e-03 & 8.91e-03 & 1.31e-02 & 9.30e-03& 1.53e-02& 6.55e-03 & 2.63e-02 & 9.61e-03& 6.68e-01 & \bf{4.58e-03} & \bf{4.52e-03}\s \\\cmidrule(l){3-14} & 5& 1.09e-01& 7.68e-03 & 1.19e-02 & 1.44e-02 & 1.93e-02& 2.30e-02& 1.82e-02 & 2.65e-02 & 1.31e-02& 9.32e-01 & \bf{6.77e-03} & \bf{6.69e-03}\s \\\cmidrule(l){3-14} & 10 & 1.10e-01& 9.24e-03 & 1.42e-02 & 1.53e-02 & 9.84e-02& 2.89e-02& 2.60e-02 & 2.69e-02 & 1.81e-02& 1.45e+00 & \bf{8.44e-03} & \bf{8.38e-03}\s \\ \bottomrule \end{tabular}} \end{table} ================================================ FILE: float/ch.cnn/rmse.tex ================================================ \begin{table*}[!t] \centering \footnotesize \caption{ESM-CNN及对照组模型在原油价格与股票指数数据集上的RMSE结果 \label{tab:app_rmse}} \resizebox{\textwidth}{!}{ \begin{tabular}{cccccccccccccc} \toprule \multirow{2}{*}{数据集} & \multirow{2}{*}{H} & \multicolumn{3}{c}{统计模型} & \multicolumn{3}{c}{梯度下降模型} & \multicolumn{3}{c}{随机映射模型} & \multicolumn{2}{c}{消融模型} & 所提模型\\ \cmidrule(l){3-5} \cmidrule(lr){6-8} \cmidrule(lr){9-11} \cmidrule(lr){12-13} \cmidrule(lr){14-14} && Naive & ARIMA& HWSES & GS-CNN& DeepAR& CLSTM & RVFL & IELM & SCN & Stoc-CNN & ES-CNN& ESM-CNN \\ \cmidrule(l){1-14} \multirowcell{3}{BRENT-\\weekly} & 1& 3.24e+01& 7.23e+00 & 7.49e+00 & 1.01e+01 & 2.90e+00& 5.21e+00& 3.86e+00 & 9.91e+00 & 3.73e+00& 2.67e+02 & \textbf{2.89e+00} & \textbf{2.62e+00}\s \\ \cmidrule(l){3-14} & 4& 3.21e+01& 1.70e+01 & 1.78e+01 & 1.12e+01 & 6.06e+00& 7.75e+00& 9.06e+00 & 1.08e+01 & 5.81e+00& 3.83e+02 & \textbf{5.20e+00} & \textbf{5.14e+00}\s \\ \cmidrule(l){3-14} & 8& 3.31e+01& 2.96e+01 & 3.13e+01 & 1.12e+01 & 1.15e+01& 1.13e+01& 1.41e+01 & 1.31e+01 & 9.31e+00& 4.86e+02 & \textbf{7.61e+00} & \textbf{7.52e+00}\s \\ \cmidrule(l){2-14} \multirowcell{3}{BRENT-\\daily} & 1& 3.14e+01& 5.89e+00 & 5.95e+00 & 5.22e+00 & \textbf{1.32e+00}\s & 2.29e+00& 1.44e+00 & 8.70e+00 & 1.35e+00& 4.19e+00 & 1.35e+00& \textbf{1.34e+00} \\ \cmidrule(l){3-14} & 5& 3.17e+01& 1.88e+01 & 1.88e+01 & 6.19e+00 & 2.34e+00& 2.93e+00& 2.70e+00 & 9.05e+00 & 2.35e+00& 7.92e+00 & \textbf{2.32e+00} & \textbf{2.29e+00}\s \\ \cmidrule(l){3-14} & 10 & 3.21e+01& 3.53e+01 & 3.51e+01 & 6.26e+00 & 3.82e+00& 3.73e+00& 3.75e+00 & 9.48e+00 & \textbf{3.41e+00} & 1.19e+01 & 3.68e+00& \textbf{3.16e+00}\s \\ \cmidrule(l){2-14} \multirowcell{3}{WTI-\\weekly} & 1& 2.87e+01& 7.00e+00 & 7.31e+00 & 1.22e+01 & \textbf{2.64e+00}\s & 5.35e+00& 4.04e+00 & 1.24e+01 & 3.08e+00& 2.36e+02 & 3.05e+00& \textbf{2.81e+00} \\ \cmidrule(l){3-14} & 4& 2.91e+01& 1.60e+01 & 1.68e+01 & 1.34e+01 & 5.92e+00& 8.39e+00& 9.19e+00 & 1.33e+01 & 5.50e+00& 3.65e+02 & \textbf{5.21e+00} & \textbf{5.01e+00}\s \\ \cmidrule(l){3-14} & 8& 2.95e+01& 2.79e+01 & 2.94e+01 & 1.34e+01 & 8.93e+00& 1.43e+01& 1.42e+01 & 1.45e+01 & \textbf{7.51e+00} & 4.25e+02 & 7.65e+00& \textbf{7.21e+00}\s \\ \cmidrule(l){2-14} \multirowcell{3}{WTI-\\daily} & 1& 2.83e+01& 5.37e+00 & 5.43e+00 & 5.97e+00 & 1.37e+00& 2.24e+00& 1.39e+00 & 8.91e+00 & 1.41e+00& 6.97e+00 & \textbf{1.37e+00} & \textbf{1.35e+00}\s \\ \cmidrule(l){3-14} & 5& 2.85e+01& 1.71e+01 & 1.69e+01 & 6.36e+00 & \textbf{2.24e+00}\s & 2.92e+00& 2.79e+00 & 9.26e+00 & 2.41e+00& 1.25e+01 & 2.33e+00& \textbf{2.32e+00} \\ \cmidrule(l){3-14} & 10 & 2.89e+01& 3.23e+01 & 3.15e+01 & 6.43e+00 & 3.54e+00& 3.85e+00& 4.08e+00 & 9.70e+00 & \textbf{3.39e+00} & 1.74e+01 & 3.84e+00& \textbf{3.23e+00}\s \\ \cmidrule(l){2-14} \multirow{3}{*}{S\&P 500}& 1& 4.24e+02& 1.67e+01 & 2.49e+01 & 5.48e+01 & 3.46e+01& 1.47e+02& 2.61e+01 & 1.15e+02 & 3.44e+01& 5.89e+03 & \textbf{1.56e+01} & \textbf{1.28e+01}\s \\ \cmidrule(l){3-14} & 5& 4.20e+02& 2.22e+01 & 3.32e+01 & 5.77e+01 & 5.29e+01& 2.09e+02& 5.58e+01 & 1.45e+02 & 6.34e+01& 4.22e+04 & \textbf{2.12e+01} & \textbf{1.93e+01}\s \\ \cmidrule(l){3-14} & 10 & 4.23e+02& 2.75e+01 & 4.00e+01 & 5.49e+01 & 2.39e+02& 1.71e+02& 6.83e+01 & 1.34e+02 & 1.01e+02& 5.56e+04 & \textbf{2.58e+01} & \textbf{2.43e+01}\s \\ \cmidrule(l){2-14} \multirow{3}{*}{NASDAQ}& 1& 1.23e+03& 5.42e+01 & 7.54e+01 & 2.07e+02 & 4.99e+01& 5.17e+02& 3.20e+02 & 4.30e+02 & 1.29e+02& 3.70e+05 & \textbf{4.95e+01} & \textbf{4.24e+01}\s \\ \cmidrule(l){3-14} & 5& 1.22e+03& 7.41e+01 & 1.02e+02 & 2.23e+02 & 1.57e+02& 6.80e+02& 3.44e+02 & 4.51e+02 & 1.79e+02& 5.97e+05 & \textbf{6.75e+01} & \textbf{6.54e+01}\s \\ \cmidrule(l){3-14} & 10 & 1.23e+03& 9.38e+01 & 1.26e+02 & 2.18e+02 & 1.19e+03& 6.56e+02& 3.19e+02 & 4.41e+02 & 3.16e+02& 6.22e+05 & \textbf{8.36e+01} & \textbf{8.29e+01}\s \\ \cmidrule(l){2-14} \multirow{3}{*}{DJI} & 1& 3.32e+03& 1.44e+02 & 2.09e+02 & 6.28e+02 & 2.70e+02& 1.19e+03& 4.56e+02 & 1.26e+03 & 2.06e+02& 2.64e+05 & \textbf{1.30e+02} & \textbf{1.10e+02}\s \\ \cmidrule(l){3-14} & 5& 3.29e+03& 2.03e+02 & 2.87e+02 & 6.72e+02 & 1.98e+03& 1.76e+03& 6.17e+02 & 1.25e+03 & 5.07e+02& 2.02e+05 & \textbf{1.84e+02} & \textbf{1.80e+02}\s \\ \cmidrule(l){3-14} & 10 & 3.32e+03& 2.59e+02 & 3.58e+02 & 6.70e+02 & 1.01e+03& 1.80e+03& 1.27e+03 & 1.23e+03 & 1.07e+03& 2.85e+05 & \textbf{2.36e+02} & \textbf{2.33e+02}\s \\ \cmidrule(l){2-14} \multirow{3}{*}{NYSE}& 1& 1.55e+03& 8.98e+01 & 1.33e+02 & 1.84e+02 & 1.27e+02& 2.31e+02& 9.40e+01 & 3.64e+02 & 1.42e+02& 1.66e+04 & \textbf{6.97e+01} & \textbf{6.86e+01}\s \\ \cmidrule(l){3-14} & 5& 1.54e+03& 1.17e+02 & 1.76e+02 & 2.02e+02 & 2.90e+02& 3.45e+02& 2.82e+02 & 3.68e+02 & 1.93e+02& 2.28e+04 & \textbf{1.05e+02} & \textbf{1.03e+02}\s\\ \cmidrule(l){3-14} & 10 & 1.55e+03& 1.38e+02 & 2.10e+02 & 2.14e+02 & 1.68e+03& 4.31e+02& 4.05e+02 & 3.72e+02 & 2.56e+02& 3.93e+04 & \textbf{1.28e+02} & \textbf{1.26e+02}\s \\ \bottomrule \end{tabular}} \end{table*} ================================================ FILE: float/ch.cnn/smape.tex ================================================ \begin{table*}[!t] \centering \footnotesize \caption{ESM-CNN及对照组模型在原油价格与股票指数数据集上的SMAPE结果 \label{tab:app_smape}} \resizebox{\textwidth}{!}{ \begin{tabular}{cccccccccccccc} \toprule \multirow{2}{*}{数据集} & \multirow{2}{*}{H} & \multicolumn{3}{c}{统计模型} & \multicolumn{3}{c}{梯度下降模型} & \multicolumn{3}{c}{随机映射模型} & \multicolumn{2}{c}{消融模型} & 所提模型\\ \cmidrule(l){3-5} \cmidrule(lr){6-8} \cmidrule(lr){9-11} \cmidrule(lr){12-13} \cmidrule(lr){14-14} && Naive & ARIMA& HWSES & GS-CNN& DeepAR& CLSTM & RVFL & IELM & SCN & Stoc-CNN & ES-CNN& ESM-CNN \\ \cmidrule(l){1-14} \multirowcell{3}{BRENT-\\weekly} & 1& 3.25e-01& 1.00e-01 & 9.90e-02 & 6.70e-02 & \textbf{2.07e-02} & 3.89e-02& 2.82e-02 & 6.64e-02 & 2.84e-02& 9.65e-01 & 2.26e-02& \textbf{1.97e-02}\s \\ \cmidrule(l){3-14} & 4& 9.68e-01& 6.22e-01 & 3.17e-01 & 7.37e-02 & 4.17e-02& 5.37e-02& 5.42e-02 & 7.15e-02 & 4.19e-02 & 1.14e+00 & \textbf{3.79e-02}& \textbf{3.67e-02}\s\\ \cmidrule(l){3-14} & 8& 3.68e-01& 7.03e-01 & 4.40e-01 & 7.74e-02 & 7.57e-02& 7.91e-02& 8.30e-02 & 8.42e-02 & 6.06e-02& 1.40e+00 & \textbf{5.35e-02} & \textbf{5.25e-02}\s \\ \cmidrule(l){2-14} \multirowcell{3}{BRENT-\\daily} & 1& 6.55e-01& 1.63e-01 & 1.69e-01 & 3.67e-02 & \textbf{9.55e-03}\s & 1.73e-02& 1.05e-02 & 6.05e-02 & 9.92e-03& 3.61e-02 & 1.00e-02& \textbf{9.91e-03} \\ \cmidrule(l){3-14} & 5& 4.22e-01& 5.21e-01 & 4.84e-01 & 4.31e-02 & 1.72e-02& 2.18e-02& 1.87e-02 & 6.26e-02 & 1.71e-02& 6.66e-02 & \textbf{1.70e-02} & \textbf{1.67e-02}\s \\ \cmidrule(l){3-14} & 10 & 4.17e-01& 7.59e-01 & 6.83e-01 & 4.38e-02 & 2.50e-02& 2.68e-02& 2.58e-02 & 6.51e-02 & \textbf{2.44e-02} & 1.39e-01 & 2.60e-02& \textbf{2.28e-02}\s \\ \cmidrule(l){2-14} \multirowcell{3}{WTI-\\weekly} & 1& 3.69e-01& 7.82e-02 & 9.42e-02 & 7.89e-02 & \textbf{2.06e-02}\s& 4.17e-02& 3.08e-02 & 8.89e-02 & 2.48e-02& 6.86e-01 & 2.52e-02& \textbf{2.44e-02}\\ \cmidrule(l){3-14} & 4& 9.06e+01& 2.10e-01 & 2.81e-01 & 8.50e-02 & 4.00e-02& 5.86e-02& 6.84e-02 & 9.40e-02 & 4.13e-02& 8.43e-01 & \textbf{3.97e-02} & \textbf{3.90e-02}\s \\ \cmidrule(l){3-14} & 8& 3.34e-01& 3.80e-01 & 5.26e-01 & 8.43e-02 & 5.92e-02& 7.93e-02& 2.88e-01 & 1.00e-01 & \textbf{5.51e-02} & 2.75e+00 & 5.53e-02& \textbf{5.17e-02}\s \\ \cmidrule(l){2-14} \multirowcell{3}{WTI-\\daily}& 1& 8.29e-01& 1.34e-01 & 1.75e-01 & 4.26e-02 & 1.05e-02& 1.78e-02& 1.06e-02 & 6.45e-02 & 1.06e-02& 1.17e-01 & \textbf{1.04e-02} & \textbf{1.02e-02}\s \\ \cmidrule(l){3-14} & 5& 3.63e-01& 6.75e-01 & 4.02e-01 & 4.50e-02 & \textbf{1.73e-02}\s & 2.27e-02& 1.95e-02 & 6.67e-02 & 1.79e-02& 1.10e-01 & 1.76e-02& \textbf{1.75e-02} \\ \cmidrule(l){3-14} & 10 & 4.20e-01& 7.36e-01 & 8.09e-01 & 4.53e-02 & 2.51e-02& 2.78e-02& 2.73e-02 & 6.94e-02 & \textbf{2.47e-02} & 1.46e-01 & 2.83e-02& \textbf{2.41e-02}\s \\ \cmidrule(l){2-14} \multirow{3}{*}{S\&P 500}& 1& 7.60e-02& \textbf{2.59e-03}& 4.13e-03 & 9.68e-03 & 6.47e-03& 2.53e-02& 4.41e-03 & 2.03e-02 & 5.97e-03& 5.23e+00 & 2.66e-03& \textbf{2.03e-03}\s \\ \cmidrule(l){3-14} & 5& 7.46e-02& 3.58e-03 & 5.50e-03 & 1.02e-02 & 9.48e-03& 3.79e-02& 9.68e-03 & 2.69e-02 & 1.12e-02& 4.37e+00 & \textbf{3.50e-03} & \textbf{3.08e-03}\s \\ \cmidrule(l){3-14} & 10 & 7.57e-02& 4.47e-03 & 6.61e-03 & 9.81e-03 & 4.24e-02& 3.11e-02& 1.22e-02 & 2.40e-02 & 1.77e-02& 7.42e+00 & \textbf{4.34e-03} & \textbf{4.02e-03}\s \\ \cmidrule(l){2-14} \multirow{3}{*}{NASDAQ}& 1& 9.04e-02& 3.58e-03 & 5.19e-03 & 1.44e-02 & 3.61e-03& 3.61e-02& 1.76e-02 & 3.00e-02 & 8.22e-03& 1.34e+00 & \textbf{3.33e-03} & \textbf{2.75e-03}\s \\ \cmidrule(l){3-14} & 5& 8.91e-02& 5.15e-03 & 7.01e-03 & 1.57e-02 & 1.09e-02& 4.85e-02& 1.69e-02 & 3.19e-02 & 1.20e-02& 1.88e+00 & \textbf{4.54e-03} & \textbf{4.42e-03}\s \\ \cmidrule(l){3-14} & 10 & 9.08e-02& 6.50e-03 & 8.69e-03 & 1.55e-02 & 8.73e-02& 4.53e-02& 1.71e-02 & 3.12e-02 & 2.24e-02& 1.77e+00 & \textbf{5.73e-03} & \textbf{5.66e-03}\s \\ \cmidrule(l){2-14} \multirow{3}{*}{DJI} & 1& 6.83e-02& 2.62e-03 & 4.08e-03 & 1.20e-02 & 5.36e-03& 2.21e-02& 7.66e-03 & 2.45e-02 & 3.80e-03& 4.52e-01 & \textbf{2.52e-03} & \textbf{2.05e-03}\s \\ \cmidrule(l){3-14} & 5& 6.71e-02& 3.78e-03 & 5.51e-03 & 1.29e-02 & 3.58e-02& 3.44e-02& 9.04e-03 & 2.44e-02 & 9.78e-03& 7.47e-01 & \textbf{3.54e-03} & \textbf{3.36e-03}\s \\ \cmidrule(l){3-14} & 10 & 6.81e-02& 4.80e-03 & 6.74e-03 & 1.30e-02 & 1.92e-02& 3.50e-02& 1.73e-02 & 2.43e-02 & 2.01e-02& 1.60e+00 & \textbf{4.57e-03} & \textbf{4.53e-03}\s \\ \cmidrule(l){2-14} \multirow{3}{*}{NYSE}& 1& 5.63e-02& 2.81e-03 & 4.46e-03 & 6.60e-03 & 4.67e-03& 7.73e-03& 3.28e-03 & 1.33e-02 & 4.83e-03& 1.12e+00 & \textbf{2.29e-03} & \textbf{2.26e-03}\s \\ \cmidrule(l){3-14} & 5& 5.52e-02& 3.84e-03 & 5.98e-03 & 7.27e-03 & 9.77e-03& 1.17e-02& 9.21e-03 & 1.35e-02 & 6.59e-03& 4.99e+00 & \textbf{3.38e-03} & \textbf{3.35e-03}\s \\ \cmidrule(l){3-14} & 10 & 5.61e-02& 4.64e-03 & 7.12e-03 & 7.73e-03 & 5.49e-02& 1.48e-02& 1.33e-02 & 1.37e-02 & 9.13e-03& 3.56e+00 & \textbf{4.22e-03} & \textbf{4.19e-03}\s \\ \bottomrule \end{tabular}} \end{table*} ================================================ FILE: float/ch.cnn/std.tex ================================================ \begin{table}[!t] \centering \footnotesize \caption{ESM-CNN及对照组模型在AR1、BTC和ILI数据集上的MAPE结果 \label{tab:app_mape.std}} \resizebox{\textwidth}{!}{ \begin{tabular}{cccccccccccccc} \toprule \multirow{2}{*}{数据集} & \multirow{2}{*}{H} & \multicolumn{3}{c}{统计模型} & \multicolumn{3}{c}{梯度下降模型} & \multicolumn{3}{c}{随机映射模型} & \multicolumn{2}{c}{消融模型} & 所提模型\\ \cmidrule(l){3-5} \cmidrule(lr){6-8} \cmidrule(lr){9-11} \cmidrule(lr){12-13} \cmidrule(lr){14-14} && Naive & ARIMA& HWSES & GS-CNN& DeepAR& CLSTM & RVFL & IELM & SCN & Stoc-CNN & ES-CNN& ESM-CNN \\ \cmidrule(l){1-14} \multirow{6}{*}{{AR1}}& \multirow{2}{*}{1}& 2.54e-01& 5.95e-01 & 5.94e-01 & 1.06e-01 & 1.08e-01& 8.88e-02& 7.61e-01 & 9.84e-02 & 6.50e-02& 6.10e+01 & \bf{4.53e-02} & \bf{3.49e-02}\s \\ & & (-)& (-) & (-) & (7.38e-03) & (2.26e-02) & (1.42e-02) & (4.74e-01) & (1.47e-02) & (2.41e-02) & (2.52e+01) & \textbf{(5.81e-03)} & \textbf{(5.01e-04)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{3}& 2.62e-01& 6.00e-01 & 5.98e-01 & 1.23e-01 & 1.64e-01& 1.20e-01& 1.17e+00 & 1.07e-01 & 9.53e-02& 6.34e+01 & \bf{6.41e-02} & \bf{5.28e-02}\s \\ & & (-)& (-) & (-) & (7.15e-03) & (3.46e-02) & (1.34e-02) & (5.85e-01) & (1.22e-02) & (1.97e-02) & (2.13e+01) & \textbf{(5.21e-03)} & \textbf{(1.77e-03)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{6}& 2.68e-01& 6.08e-01 & 6.05e-01 & 1.48e-01 & 2.17e-01& 1.24e-01& 1.23e+00 & 1.26e-01 & 1.16e-01& 1.54e+02 & \bf{8.92e-02} & \bf{7.70e-02}\s \\ & & (-)& (-) & (-) & (6.41e-03) & (3.72e-02) & (1.84e-02) & (7.78e-01) & (1.74e-02) & (2.63e-02) & (8.02e+01) & \textbf{(5.23e-03)} & \textbf{(2.32e-03)} \\ \cmidrule(l){2-14} \multirow{6}{*}{BTC} & \multirow{2}{*}{1}& 2.55e-01& 3.17e-01 & 3.17e-01 & 6.27e-02 & 2.26e-01& 4.09e-01& 1.20e+00 & 1.85e-01 & 1.11e-01& 2.14e+02 & \bf{4.62e-02} & \bf{2.70e-02}\s \\ & & (-)& (-) & (-) & (6.37e-03) & (3.09e-02) & (2.34e-02) & (7.24e-01) & (2.98e-02) & (2.45e-02) & (1.90e+02) & \textbf{(1.82e-02)} & \textbf{(4.98e-04)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{3}& 2.54e-01& 3.18e-01 & 3.18e-01 & 6.43e-02 & 1.98e-01& 4.41e-01& 1.13e+00 & 1.84e-01 & 1.29e-01& 2.86e+02 & \bf{4.73e-02} & \bf{2.96e-02}\s \\ & & (-)& (-) & (-) & (6.63e-03) & (3.80e-02) & (2.44e-02) & (4.82e-01) & (2.94e-02) & (2.62e-02) & (2.33e+02) & \textbf{(1.76e-02)} & \textbf{(3.67e-04)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{6}& 2.53e-01& 3.21e-01 & 3.20e-01 & 6.49e-02 & 2.35e-01& 4.61e-01& 1.38e+00 & 1.84e-01 & 1.40e-01& 3.32e+02 & \bf{4.84e-02} & \bf{3.26e-02}\s \\ & & (-)& (-) & (-) & (6.28e-03) & (4.20e-02) & (9.60e-03) & (6.57e-01) & (3.06e-02) & (2.54e-02) & (3.00e+02) & \textbf{(1.68e-02)} & \textbf{(2.65e-04)} \\ \cmidrule(l){2-14} \multirow{6}{*}{ILI} & \multirow{2}{*}{1}& 1.94e-01& 5.70e-01 & 5.94e-01 & 1.28e-01 & 1.14e-01& \bf{9.50e-02} & 3.03e-01 & 1.38e-01 & 1.15e-01& 2.48e+00 & 1.00e-01& \bf{8.93e-02}\s \\ & & (-)& (-) & (-) & (2.30e-03) & (8.92e-03) & \textbf{(2.64e-03)} & (5.17e-02) & (8.14e-03) & (9.50e-03) & (3.72e-01) & (9.59e-03) & \textbf{(3.10e-03)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{4}& 2.51e-01& 5.39e-01 & 5.90e-01 & 1.52e-01 & 1.59e-01& \bf{1.26e-01} & 3.53e-01 & 1.58e-01 & 1.53e-01& 2.33e+00 & 1.33e-01& \bf{1.25e-01}\s \\ & & (-)& (-) & (-) & (1.27e-03) & (7.46e-03) & \textbf{(1.89e-03)} & (3.88e-02) & (5.43e-03) & (9.04e-03) & (2.25e-01) & (4.64e-03) & \textbf{(3.95e-03)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{8}& 3.07e-01& 5.34e-01 & 5.98e-01 & 1.70e-01 & 1.82e-01& \bf{1.45e-01}\s & 3.67e-01 & 1.74e-01 & 1.86e-01& 2.38e+00 & 1.62e-01& \bf{1.53e-01} \\ & & (-)& (-) & (-) & (7.76e-04) & (8.70e-03) & \textbf{(3.17e-03)} & (4.19e-02) & (4.81e-03) & (1.11e-02) & (3.15e-01) & (4.07e-03) & \textbf{(3.33e-03)} \\ \bottomrule \end{tabular}} \end{table} \begin{table}[!t] \centering \footnotesize \caption{ESM-CNN及对照组模型在AR1、BTC和ILI数据集上的SMAPE结果\label{tab:app_smape.std}} \resizebox{\textwidth}{!}{ \begin{tabular}{cccccccccccccc} \toprule \multirow{2}{*}{数据集} & \multirow{2}{*}{H} & \multicolumn{3}{c}{统计模型} & \multicolumn{3}{c}{梯度下降模型} & \multicolumn{3}{c}{随机映射模型} & \multicolumn{2}{c}{消融模型} & 所提模型\\ \cmidrule(l){3-5} \cmidrule(lr){6-8} \cmidrule(lr){9-11} \cmidrule(lr){12-13} \cmidrule(lr){14-14} && Naive & ARIMA& HWSES & GS-CNN& DeepAR& CLSTM & RVFL & IELM & SCN & Stoc-CNN & ES-CNN& ESM-CNN \\ \cmidrule(l){1-14} \multirow{6}{*}{AR1} & 1& 1.33e-01& 4.31e-01 & 4.30e-01 & 5.74e-02 & 5.81e-02& 4.74e-02& 3.02e+00 & 5.30e-02 & 3.40e-02& 1.21e+00 & \textbf{2.33e-02} & \textbf{1.76e-02}\s \\ & & (-)& (-) & (-) & (4.33e-03) & (1.28e-02) & (8.42e-03) & (6.74e+00) & (8.80e-03) & (1.35e-02) & (5.13e-01) & \textbf{(3.16e-03)} & \textbf{(3.11e-04)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{3}& 1.37e-01& 4.36e-01 & 4.34e-01 & 6.73e-02 & 9.17e-02& 6.61e-02& 8.61e+00 & 5.76e-02 & 5.11e-02& 1.50e+00 & \textbf{3.36e-02} & \textbf{2.72e-02}\s \\ & & (-)& (-) & (-) & (4.23e-03) & (2.10e-02) & (8.15e-03) & (1.07e+01) & (7.44e-03) & (1.15e-02) & (1.36e+00) & \textbf{(2.89e-03)} & \textbf{(1.04e-03)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{6}& 1.46e-01& 4.43e-01 & 4.40e-01 & 8.28e-02 & 1.25e-01& 6.82e-02& 6.36e+00 & 6.97e-02 & 6.28e-02& 1.52e+00 & \textbf{4.78e-02} & \textbf{4.05e-02}\s \\ & & (-)& (-) & (-) & (3.84e-03) & (2.41e-02) & (1.17e-02) & (6.59e+00) & (1.06e-02) & (1.62e-02) & (1.73e+00) & \textbf{(3.03e-03)} & \textbf{(1.53e-03)} \\ \cmidrule(l){2-14} \multirow{6}{*}{BTC} & 1& 1.35e-01& 1.90e-01 & 1.90e-01 & 3.26e-02 & 1.29e-01& 2.60e-01& 5.04e+00 & 1.04e-01 & 5.93e-02& 1.12e+00 & \textbf{2.37e-02} & \textbf{1.35e-02}\s \\ & & (-)& (-) & (-) & (3.49e-03) & (2.02e-02) & (1.87e-02) & (7.64e+00) & (1.87e-02) & (1.44e-02) & (2.20e-01) & \textbf{(9.73e-03)} & \textbf{(2.90e-04)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{3}& 1.35e-01& 1.91e-01 & 1.90e-01 & 3.35e-02 & 1.12e-01& 2.87e-01& 2.85e+00 & 1.04e-01 & 7.05e-02& 1.09e+00 & \textbf{2.43e-02} & \textbf{1.48e-02}\s \\ & & (-)& (-) & (-) & (3.65e-03) & (2.38e-02) & (1.97e-02) & (4.01e+00) & (1.85e-02) & (1.54e-02) & (1.26e-01) & \textbf{(9.39e-03)} & \textbf{(2.10e-04)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{6}& 1.36e-01& 1.93e-01 & 1.92e-01 & 3.38e-02 & 1.36e-01& 3.03e-01& 2.69e+00 & 1.04e-01 & 7.68e-02& 1.05e+00 & \textbf{2.48e-02} & \textbf{1.63e-02}\s \\ & & (-)& (-) & (-) & (3.47e-03) & (2.76e-02) & (8.17e-03) & (4.68e+00) & (1.92e-02) & (1.52e-02) & (6.03e-02) & \textbf{(8.99e-03)} & \textbf{(1.44e-04)} \\ \cmidrule(l){2-14} \multirow{6}{*}{ILI} & 1& 9.82e-02& 4.16e-01 & 4.47e-01 & 6.91e-02 & 6.02e-02& \textbf{4.86e-02} & 1.28e-01 & 7.49e-02 & 6.06e-02& 9.65e-01 & 5.20e-02& \textbf{4.60e-02}\s \\ & & (-)& (-) & (-) & (1.48e-03) & (4.37e-03) & \textbf{(1.52e-03)} & (1.73e-02) & (4.74e-03) & (5.13e-03) & (5.61e-01) & (5.09e-03) & \textbf{(1.42e-03)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{4}& 1.22e-01& 3.86e-01 & 4.44e-01 & 8.40e-02 & 8.43e-02& \textbf{6.71e-02} & 1.64e-01 & 8.83e-02 & 8.24e-02& 1.39e+00 & 7.13e-02& \textbf{6.65e-02}\s \\ & & (-)& (-) & (-) & (7.92e-04) & (3.34e-03) & \textbf{(1.09e-03)} & (1.67e-02) & (3.64e-03) & (5.04e-03) & (4.77e-01) & (2.42e-03) & \textbf{(1.97e-03)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{8}& 1.55e-01& 3.80e-01 & 4.54e-01 & 9.79e-02 & 1.00e-01& \textbf{8.11e-02}\s & 2.55e-01 & 1.01e-01 & 1.04e-01& 1.60e+00 & 9.07e-02& \textbf{8.52e-02} \\ & & (-)& (-) & (-) & (5.25e-04) & (3.68e-03) & \textbf{(1.99e-03)} & (1.63e-01) & (3.15e-03) & (6.38e-03) & (5.97e-01) & (2.25e-03) & \textbf{(1.75e-03)} \\ \bottomrule \end{tabular}} \end{table} \begin{table}[!t] \centering \footnotesize \caption{ESM-CNN及对照组模型在在AR1、BTC和ILI数据集上的RMSE结果 \label{tab:app_rmse.std}} \resizebox{\textwidth}{!}{ \begin{tabular}{cccccccccccccc} \toprule \multirow{2}{*}{数据集} & \multirow{2}{*}{H} & \multicolumn{3}{c}{统计模型} & \multicolumn{3}{c}{梯度下降模型} & \multicolumn{3}{c}{随机映射模型} & \multicolumn{2}{c}{消融模型} & 所提模型\\ \cmidrule(l){3-5} \cmidrule(lr){6-8} \cmidrule(lr){9-11} \cmidrule(lr){12-13} \cmidrule(lr){14-14} && Naive & ARIMA& HWSES & GS-CNN& DeepAR& CLSTM & RVFL & IELM & SCN & Stoc-CNN & ES-CNN& ESM-CNN \\ \cmidrule(l){1-14} \multirow{6}{*}{AR1} & 1& 1.16e+00& 2.24e+00 & 2.23e+00 & 5.53e-01 & 5.08e-01& 4.89e-01& 3.21e+00 & 5.54e-01 & 3.34e-01& 4.36e+02 & \textbf{2.28e-01} & \textbf{1.55e-01}\s \\ & & (-)& (-) & (-) & (3.60e-02) & (9.60e-02) & (8.93e-02) & (1.85e+00) & (7.81e-02) & (1.13e-01) & (2.01e+02) & \textbf{(3.43e-02)} & \textbf{(3.66e-03)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{3}& 1.19e+00& 2.26e+00 & 2.25e+00 & 6.30e-01 & 7.66e-01& 6.67e-01& 5.15e+00 & 5.80e-01 & 4.98e-01& 4.43e+02 & \textbf{3.22e-01} & \textbf{2.57e-01}\s \\ & & (-)& (-) & (-) & (3.26e-02) & (1.30e-01) & (6.71e-02) & (2.26e+00) & (6.50e-02) & (8.72e-02) & (1.95e+02) & \textbf{(2.43e-02)} & \textbf{(1.04e-02)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{6}& 1.25e+00& 2.29e+00 & 2.28e+00 & 7.40e-01 & 9.96e-01& 6.79e-01& 5.59e+00 & 6.71e-01 & 6.00e-01& 1.07e+03 & \textbf{4.61e-01} & \textbf{3.94e-01}\s \\ & & (-)& (-) & (-) & (2.55e-02) & (1.34e-01) & (9.10e-02) & (3.27e+00) & (7.89e-02) & (1.27e-01) & (5.37e+02) & \textbf{(2.71e-02)} & \textbf{(1.62e-02)} \\ \cmidrule(l){2-14} \multirow{6}{*}{BTC} & 1& 1.47e+04& 1.49e+04 & 1.49e+04 & 3.87e+03 & 1.15e+04& 2.08e+04& 6.74e+04 & 1.05e+04 & 6.52e+03& 1.33e+07 & \textbf{2.75e+03} & \textbf{1.59e+03}\s \\ & & (-)& (-) & (-) & (3.62e+02) & (1.52e+03) & (1.15e+03) & (3.63e+04) & (1.60e+03) & (1.41e+03) & (1.11e+07) & \textbf{(1.07e+03)} & \textbf{(2.39e+01)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{3}& 1.47e+04& 1.49e+04 & 1.49e+04 & 3.97e+03 & 1.02e+04& 2.24e+04& 7.11e+04 & 1.04e+04 & 7.55e+03& 1.92e+07 & \textbf{2.82e+03} & \textbf{1.74e+03}\s \\ & & (-)& (-) & (-) & (3.76e+02) & (1.91e+03) & (1.15e+03) & (2.70e+04) & (1.58e+03) & (1.40e+03) & (1.43e+07) & \textbf{(1.03e+03)} & \textbf{(2.01e+01)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{6}& 1.46e+04& 1.50e+04 & 1.50e+04 & 4.00e+03 & 1.22e+04& 2.33e+04& 8.82e+04 & 1.04e+04 & 8.09e+03& 2.30e+07 & \textbf{2.89e+03} & \textbf{1.92e+03}\s \\ & & (-)& (-) & (-) & (3.54e+02) & (2.12e+03) & (4.55e+02) & (3.93e+04) & (1.64e+03) & (1.33e+03) & (1.96e+07) & \textbf{(9.79e+02)} & \textbf{(1.51e+01)} \\ \cmidrule(l){2-14} \multirow{6}{*}{ILI} & 1& 9.44e-01& 2.23e+00 & 2.28e+00 & 8.45e-01 & 7.82e-01& 7.10e-01& 1.74e+00 & 8.88e-01 & 7.14e-01& 1.50e+01 & \textbf{6.81e-01} & \textbf{6.06e-01}\s \\ & & (-)& (-) & (-) & (1.95e-02) & (1.87e-02) & (2.52e-02) & (3.17e-01) & (4.41e-02) & (3.11e-02) & (2.50e+00) & \textbf{(5.37e-02)} & \textbf{(8.14e-03)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{4}& 1.28e+00& 2.25e+00 & 2.35e+00 & 1.00e+00 & 9.95e-01& 9.07e-01& 1.96e+00 & 1.04e+00 & 9.09e-01& 1.39e+01 & \textbf{8.65e-01} & \textbf{8.14e-01}\s \\ & & (-)& (-) & (-) & (9.40e-03) & (1.52e-02) & (1.71e-02) & (2.49e-01) & (3.56e-02) & (2.52e-02) & (1.54e+00) & \textbf{(2.35e-02)} & \textbf{(8.75e-03)} \\ \cmidrule(l){3-14} & \multirow{2}{*}{8}& 1.63e+00& 2.36e+00 & 2.47e+00 & 1.16e+00 & 1.16e+00& \textbf{1.04e+00} & 2.00e+00 & 1.18e+00 & 1.11e+00& 1.43e+01 & 1.07e+00& \textbf{1.03e+00}\s \\ & & (-)& (-) & (-) & (5.03e-03) & (2.11e-02) & \textbf{(1.76e-02)} & (2.32e-01) & (2.07e-02) & (2.54e-02) & (2.03e+00) & (1.07e-02) & \textbf{(6.63e-03)} \\ \bottomrule \end{tabular}} \end{table} ================================================ FILE: float/ch.cnn/time.tex ================================================ \begin{table*}[!t] \centering \footnotesize \caption{神经网络模型在AR1、BTC和ILI数据集上的单次平均建模时间(s) \label{tab:time}} \resizebox{\textwidth}{!}{\begin{tabular}{ccrrrrrrrrr} \toprule \multirow{2}{*}{建模方法} & \multirow{2}{*}{模型} & \multicolumn{3}{c}{AR1} & \multicolumn{3}{c}{BTC} & \multicolumn{3}{c}{ILI} \\\cmidrule(lr){3-5} \cmidrule(lr){6-8}\cmidrule(lr){9-11} & & \multicolumn{1}{c}{1} & \multicolumn{1}{c}{3} & \multicolumn{1}{c}{6} & \multicolumn{1}{c}{1} & \multicolumn{1}{c}{3} & \multicolumn{1}{c}{6} & \multicolumn{1}{c}{1} & \multicolumn{1}{c}{4} & \multicolumn{1}{c}{8} \\ \midrule \multirow{3}{*}{梯度下降} & GS-CNN & 74.65 & 76.95 & 78.55 & 93.70 & 96.45 & 99.40 & 67.05 & 70.25 & 73.00 \\ & DeepAR & 225.25 & 238.95 & 257.70 & 223.75 & 251.10 & 268.65 & 256.80 & 279.10 & 275.30 \\ & CLSTM & 150.45 & 154.80 & 160.25 & 143.00 & 141.50 & 142.25 & 167.40 & 170.80 & 175.30 \\ \specialrule{0em}{1.5pt}{1.5pt} \multirow{3}{*}{随机映射} & RVFL & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} \\ & IELM & 2.65 & 2.85 & 2.80 & 3.40 & 3.30 & 3.20 & 2.55 & 2.55 & 2.40 \\ & SCN & 22.85 & 57.40 & 107.75 & 21.10 & 58.00 & 111.40 & 16.10 & 49.60 & 90.95 \\ \specialrule{0em}{1.5pt}{1.5pt} \multirow{2}{*}{消融方法} & Stoc-CNN & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} & \multicolumn{1}{c}{-} \\ & ES-CNN & 6.50 & 6.40 & 6.50 & 6.35 & 6.50 & 6.45 & 6.45 & 6.50 & 6.50 \\ \specialrule{0em}{1.5pt}{1.5pt} 所提方法 & ESM-CNN & 9.65 & 9.65 & 9.70 & 7.10 & 7.25 & 7.25 & 7.15 & 7.15 & 7.20 \\ \bottomrule \end{tabular}} \end{table*} ================================================ FILE: float/ch.univ/loader.tex ================================================ \begin{figure}[t!] \begin{python} class TaskDataset(Opt): def __init__(self, args): super().__init__() self.args = args self.info = Opt() self.info.normal = args.normal self.info.H = args.H self.info_config() self.sub_config() self.info.num_series = len(self.seriesPack) def info_config(self, ): pass def sub_config(self,): pass ... \end{python} \caption{TaskLoader中的TaskDataset类\label{fig:ch.univ.data} } \end{figure} \begin{figure}[t!] \begin{python} from task.TaskLoader import TaskDataset import pandas as pd class gef_data(TaskDataset): def __init__(self, args): super().__init__(args) def info_config(self): self.info.normal = False self.info.data_path = 'data/src/gef/2017_smd_hourly.xlsx' self.info.series_name = ['ME','NH','VT','CT','RI','SEMA','WCMA','NEMA'] self.info.steps = 24*7 def sub_config(self,): self.seriesPack = [] for i,name in enumerate(self.info.series_name): df = pd.read_excel(self.info.data_path,sheet_name=name, index_col=None,header=0) raw_ts = df['RT_Demand'].values sub = self.pack_dataset(raw_ts) sub.index = i sub.name = name sub.merge(self.info) self.seriesPack.append(sub) \end{python} \caption{GEF数据集数据预处理示例\label{fig:ch.univ.gef} } \end{figure} ================================================ FILE: float/ch.univ/method.tex ================================================ \begin{table}[t!] \centering \footnotesize \caption{“OpenForecasting”框架提供的预测模型\label{tab:ch.univ.methods}} \scriptsize \begin{tabularx}{\textwidth}{lX} \toprule 模型名称 & \multicolumn{1}{c}{参考文献} \\ \midrule Naive & Box et al. Time Series Analysis: Forecasting and Control\cite{boxTime2011}. \\ ARIMA & Hyndman et al. {Automatic Time Series Forecasting: The Forecast Package for R}\cite{hyndmanAutomatic2008}. \\ HW & Chatfield, Chris. The Holt-Winters Forecasting Procedure\cite{chatfieldHoltwinters1978}. \\ MSVR & Bao et al. Multi-Step-Ahead Time Series Prediction Using Multiple-Output Support Vector Regression\cite{baoMultistepahead2014}. \\ MLP & Bao et al. {{PSO}}-{{MISMO Modeling Strategy}} for {{MultiStep}}-{{Ahead Time Series Prediction}}\cite{baoPSOMISMO2014}. \\ CLPSO-ML & Yang et al. Comprehensive Learning Particle Swarm Optimization Enabled Modeling Framework for Multi-Step-Ahead Influenza Prediction\cite{yangComprehensive2021}. \\ Elman RNN & Hewamalage et al. {Recurrent {{Neural Networks}} for {{Time Series Forecasting}}: {{Current}} Status and Future Directions}\cite{hewamalageRecurrent2021}. \\ GRU & Cho et al. {On the Properties of Neural Machine Translation: Encoder\textendash Decoder Approaches}\cite{choProperties2014}. \\ LSTM & Hochreiter et al. {Long Short-Term Memory}\cite{hochreiterLong1997}. \\ DeepAR & Salinas et al. {{{DeepAR}}: {{Probabilistic}} Forecasting with Autoregressive Recurrent Networks}\cite{salinasDeepAR2020}. \\ CNN & Koprinska et al. {Convolutional {{Neural Networks}} for {{Energy Time Series Forecasting}}}\cite{koprinskaConvolutional2018}. \\ ConvRNN & Livieris et al. {A {{CNN}}\textendash{{LSTM}} Model for Gold Price Time Series Forecasting}\cite{livieris2020cnn}. \\ RVFL & Igelnik et al. {Stochastic Choice of Basis Functions in Adaptive Function Approximation and the Functional-Link net}\cite{igelnik1995stochastic}. \\ IELM & Huang et al. {Extreme Learning Machine: {{Theory}} and Applications}\cite{huangExtreme2006}. \\ SCN & Wang et al. Stochastic Configuration Networks: Fundamentals and Algorithms\cite{wang2017stochastic}. \\ ESN & Jaeger, Herbert. {The “Echo State” Approach to Analysing and Training Recurrent Neural Networks with an Erratum Note}\cite{jaegerEcho2001}. \\ DESN & Gallicchio et al. {Echo State Property of Deep Reservoir Computing Networks}\cite{gallicchioEcho2017}. \\ GESN & Qiao et al. {Growing Echo-State Network with Multiple Subreservoirs}\cite{qiaoGrowing2017}. \\ PSO-GESN & Li et al. {PSO}-Based Growing Echo State Network\cite{liPSObased2019}. \\ Stoc-CNN & Yu et al. {Impact of Random Weights on Nonlinear System Identification Using Convolutional Neural Networks}\cite{yuImpact2019}. \\ ESM-CNN & Zhang et al. {Error-Feedback Stochastic Modeling Strategy for Time Series Forecasting with Convolutional Neural Networks}\cite{zhangErrorfeedback2021}. \\ \bottomrule \end{tabularx} \end{table} \begin{table}[t!] \centering \footnotesize \caption{“UniV-Forecasting”框架支持的优化算法\label{tab:ch.univ.optim}} \scriptsize \begin{tabularx}{\textwidth}{lX} \toprule 算法名称 & \multicolumn{1}{c}{参考文献} \\ \midrule RS & Bergstra et al. Random Search for Hyper-Parameter Optimization\cite{bergstraRandom2012}. \\ BO & Snoek et al. Practical Bayesian Optimization of Machine Learning Algorithms\cite{snoekPractical2012}. \\ BOHB & Falkner et al. {BOHB: Robust and Efficient Hyperparameter Optimization at Scale}\cite{falknerBOHB2018}. \\ CFO & Wu et al. {Frugal Optimization for Cost-Related Hyperparameters}\cite{wuFrugal2021}. \\ BS & Wang et al. {Economic Hyperparameter Optimization with Blended Search Strategy}\cite{wangEconomic2020}. \\ PSO & Kennedy et al. {Particle Swarm Optimization}\cite{kennedyParticle1995}. \\ TPE & Bergstra et al. {Algorithms for Hyper-Parameter Optimization}\cite{bergstraAlgorithms2011}. \\ \bottomrule \end{tabularx} \end{table} ================================================ FILE: float/ch.univ/model.tex ================================================ \begin{figure} \begin{python} import torch import torch.nn as nn class ESNCell(nn.Module): def __init__(self, init = 'vanilla', hidden_size = 500, input_dim = 1, nonlinearity = 'tanh', leaky_r = 1, weight_scale = 0.9, iw_bound = (-0.1, 0.1), hw_bound=(-1,1), device='cpu'): super(ESNCell, self).__init__() self.input_dim = input_dim self.Hidden_Size = hidden_size ... self.ih = nn.Linear(self.input_dim, self.Hidden_Size, bias=False).to(self.device) self.hh = nn.Linear(self.Hidden_Size, self.Hidden_Size, bias=False).to(self.device) self.weight_init(self,) ... def forward(self, current_input, last_state): current_state = self.ih(current_input) + self.hh(last_state) current_state = self.act_f(current_state) _last_state = (1- self.leaky_r) * last_state + self.leaky_r * current_state return _last_state ... \end{python} \caption{回声状态网络单元模组示例\label{fig:ch.univ.esncell}} \end{figure} \begin{figure} \begin{python} import torch import torch.nn as nn class esnLayer(nn.Module): def __init__(self, init = 'vanilla', hidden_size = 500, input_dim = 1, nonlinearity = 'tanh', leaky_r = 1, weight_scale = 0.9, iw_bound = (-0.1, 0.1), hw_bound=(-1,1), device='cpu'): super(esnLayer, self).__init__() self.esnCell = ESNCell(init=init,hidden_size=hidden_size,input_dim=input_dim,nonlinearity=nonlinearity,leaky_r=leaky_r,weight_scale=weight_scale,iw_bound=iw_bound,hw_bound=hw_bound,device=device) def forward(self, x, _last_state = None): with torch.no_grad(): samples, time_steps = x.shape[0], x.shape[2] layer_hidden_state = torch.empty(samples,self.esnCell.Hidden_Size, time_steps).to(self.esnCell.device) last_state = torch.zeros(samples, self.esnCell.Hidden_Size).to(self.esnCell.device) if _last_state is None else _last_state.detach().clone().to(self.esnCell.device) for t in range(time_steps): last_state = self.esnCell(x[:,:,t], last_state) layer_hidden_state[:,:,t] = last_state return layer_hidden_state, last_state ... \end{python} \caption{回声状态网络编码过程模组示例\label{fig:ch.univ.esnlayer}} \end{figure} \begin{figure}[t!] \begin{subfigure}{\textwidth} \begin{python} class cesLayer(nn.Module): def __init__(self, cnn_hyper, esn_hyper): super(cesLayer, self).__init__() self.cnnLayer = cnnLayer(**cnn_hyper.dict) self.esnLayer = esnLayer(**esn_hyper.dict) def forward(self, x) fm, _ = self.cnnLayer(x) layer_hidden_state, last_state = self.esnLayer(fm) return layer_hidden_state, last_state ... \end{python} \subcaption{卷积回声状态结构代码示例} \end{subfigure} \begin{subfigure}{\textwidth} \begin{python} class escLayer(nn.Module): def __init__(self, cnn_hyper, esn_hyper): super(cesLayer, self).__init__() self.cnnLayer = cnnLayer(**cnn_hyper.dict) self.esnLayer = esnLayer(**esn_hyper.dict) def forward(self, x) layer_hidden_state, _ = self.esnLayer(x) fm, fm_flatten = self.cnnLayer(layer_hidden_state) return fm, fm_flatten ... \end{python} \subcaption{回声状态卷积结构代码示例} \end{subfigure} \caption{基于结构模组化设计的深度神经网络混合结构代码示例\label{fig:ch.univ.mix}} \end{figure} \begin{figure}[t!] \begin{python} import torch.nn as nn from task.metric import rmse import ... class EchoStateNetwork(nn.Module): def __init__(self, opts=None, logger=None): super(EchoStateNetwork, self).__init__() self.opts = opts self.logger = logger self.fit_info = Opt() ... def xfit(self, train_data, val_data): train_loader = self.data_loader(train_data) val_loader = self.data_loader(val_data) h_states, x, y = self.batch_transform(train_loader) self.update_readout(h_states, x, y) pred = self.readout(self.io_check(h_states, x)[:,:,-1]) _, y, pred = self.loader_pred(train_loader) _, val_y, vpred = self.loader_pred(val_loader) self.fit_info.trmse = rmse(y,pred) self.fit_info.vrmse = rmse(val_y, vpred) return self.fit_info ... \end{python} \caption{ESN.py文件中的EchoStateNetwork类示例\label{fig:ch.univ.esn}} \end{figure} \begin{figure}[t!] \begin{python} class Model_base(Opt): def __init__(self): super().__init__() self.hyper = Opt() self.tuner = Opt() self.tuning = Opt() self.base_init() self.setting_init() self.setting_modify() ... \end{python} \caption{Model_base类示例\label{fig:ch.univ.mb} } \end{figure} \begin{figure}[t!] \begin{python} class esn_base(Model_base): def base_init(self,): self.import_path='models/stochastic/esn/ESN.py' self.class_name = 'EchoStateNetwork' def setting_init(self,): self.hyper.input_dim = 1 self.hyper.hidden_size = 400 self.hyper.nonlinearity = 'sigmoid' self.hyper.iw_bound = (-0.1, 0.1) self.hyper.hw_bound = (-1, 1) self.hyper.readout_steps = 2 ... ... \end{python} \caption{继承Model_base类的esn_base子类\label{fig:ch.univ.esn_base} } \end{figure} \begin{figure}[t!] \begin{minipage}[b]{0.45\textwidth} \begin{subfigure}{\linewidth} \begin{python} class fcd_esn(esn_base): def setting_modify(self,): self.hyper.readout_steps = 1 ... \end{python} \subcaption{继承esn_base类的fcd_esn子类示例\label{fig:ch.univ.fcd} } \end{subfigure} \end{minipage} \hfill \begin{minipage}[b]{0.45\textwidth} \begin{subfigure}{\linewidth} \begin{python} class stk_esn(esn_base): def setting_modify(self,): self.hyper.readout_steps = 168 / 2 ... \end{python} \subcaption{继承esn_base类的stk_esn子类示例\label{fig:ch.univ.stk} } \end{subfigure} \end{minipage} \caption{基于esn_base类构造的不同多输出结构模型参数示例\label{fig:ch.univ.read}} \end{figure} \begin{figure}[t!] \begin{python} from ray import tune from task.ModelSetting import esn_base class fcd_esn(esn_base): def __init__(self): super().__init__() self.tuner.algo = 'tpe' self.tuner.iters = 200 self.tuner.resource = { 'cpu': 5, 'gpu': 0.5 } self.tuning.iw_bound = tune.loguniform(1e-5, 1e-1) self.tuning.weight_scaling = tune.uniform(0.2, 0.99) self.tuning.nonlinearity = tune.choice(['sigmoid', 'tanh']) self.tuning.hidden_size = tune.qrandint(500, 1500, 50) ... \end{python} \caption{优化器资源与搜索参数设置示例\label{fig:ch.univ.tune}} \end{figure} ================================================ FILE: float/ch.univ/tune.tex ================================================ \begin{figure}[t!] \begin{python} import ray,importlib from ray import tune from ray.air import session from ray.tune.search.optuna import OptunaSearch import ... class TaskTuner(Opt): def __init__(self, opts, subPack, logger): super().__init__() self.merge(opts) self.points_to_evaluate = [] if 'points_to_evaluate' in self.tuner.dict: self.points_to_evaluate = self.tuner.points_to_evaluate self.train_data = subPack.train_data self.valid_data = subPack.valid_data self.batch_size = subPack.batch_size self.metric = 'vrmse' self.logger = logger self.algo_init() def algo_init(self,): tpe_search = OptunaSearch(metric=self.metric,mode='min',points_to_evaluate=self.points_to_evaluat) self.algo_func = tpe_search() def fitness(self, config): _hyper = Opt(init=self.hyper) _hyper.update(config) model = importlib.import_module(self.import_path) model = getattr(model, self.class_name) model = model(_hyper, self.logger) fit_info = model.xfit(self.train_data, self.valid_data) trmse, vrmse = fit_info.trmse, fit_info.vrmse session.report({'trmse': trmse,'vrmse': vrmse,}) def conduct(self,): ray.init() ray_tuner = tune.Tuner( tune.with_resources(tune.with_parameters(self.fitness),resources=self.tuner.resource), param_space=self.tuning.dict, tune_config=tune.TuneConfig(search_alg=self.algo_func,num_samples=self.tuner.iters), ) results = ray_tuner.fit() best_result = results.get_best_result(self.metric, 'min') return best_result.config \end{python} \caption{TaskTuner类示例\label{fig:ch.univ.ray}} \end{figure} ================================================ FILE: float/ch.univ/wrapper.tex ================================================ % \begin{figure} % % \centering % \begin{minipage}[t]{0.45\textwidth} % \raggedleft % \begin{subfigure}[t]{\linewidth} % \begin{python} % from task.parser import get_parser % from task.TaskWrapper import Task % if __name__ == "__main__": % args = get_parser() % args.cuda = True % args.datafolder = 'paper.sm' % args.dataset = 'mg' % args.H = 84 % args.model = 'esn' % args.rep_times = 20 % args.metrics = ['rmse','nrmse', 'mape'] % task = Task(args) % task.tuning() % task.conduct() % task.evaluation(args.metrics) % \end{python} % \caption{} % \end{subfigure} % \end{minipage} % \hfill % \begin{minipage}[t]{0.45\textwidth} % \begin{subfigure}[t]{\linewidth} % \begin{python} % from task.parser import get_parser % from task.TaskWrapper import Task % if __name__ == "__main__": % args = get_parser() % task = Task(args) % task.tuning() % task.conduct() % task.evaluation(args.metrics) % \end{python} % \caption{b} % \end{subfigure} % \\ % \begin{subfigure}[b]{\linewidth} % \begin{bash} % python task.py -datafolder paper.sm -dataset mg -H 84 -model esn -rep_times 20 -metrics rmse nrmse mape % \end{bash} % \caption{c} % \end{subfigure} % \end{minipage} % \caption{MG数据集上构造ESN预测模型进行提前84步预测建模任务} % \end{figure} \begin{figure}[t!] \begin{minipage}[b]{0.45\textwidth} \begin{python} from task.parser import get_parser from task.TaskWrapper import Task if __name__ == "__main__": args = get_parser() task = Task(args) task.tuning() task.conduct() task.evaluation(args.metrics) \end{python} \caption{预测建模框架的主文件:task.py \label{fig:ch.univ.task}} \end{minipage} \hfill \begin{minipage}[b]{0.45\textwidth} \begin{python} from task.TaskLoader import Opt import importlib import ... class Task(Opt): def __init__(self, args): self.data_config(args) self.model_config(args) self.exp_config(args) ... \end{python} \caption{TaskWrapper中的Task类 \label{fig:ch.univ.init}} \end{minipage} \end{figure} \begin{figure}[t!] \begin{python} from task.parser import get_parser from task.TaskWrapper import Task if __name__ == "__main__": args = get_parser() args.cuda = True args.datafolder = 'paper.sm' args.dataset = 'mg' args.H = 17 args.model = 'esn' args.rep_times = 20 args.metrics = ['rmse','nrmse', 'mape'] task = Task(args) task.tuning() task.conduct() task.evaluation(args.metrics) \end{python} \caption{自定义主文件task.py传入任务参数的示例\label{fig:ch.univ.mg} } \end{figure} \begin{figure}[t!] \begin{bash} python task.py -datafolder paper.sm -dataset mg -H 17 -model esn -rep_times 20 -metrics rmse nrmse mape \end{bash} \caption{由命令行传入任务参数的示例\label{fig:ch.univ.bash} } \end{figure} ================================================ FILE: main.tex ================================================ %% Local Variables: %%% mode: latex %%% TeX-master: t %%% End: % 通过使用draftformat或finalformat来控制是否有页眉,通过使用blackred或redhead来调整页眉格式 \documentclass[draftformat,redhead]{HUSTthesis} % 所有其它可能用到的包都统一放到这里了,可以根据自己的实际添加或者删除。这样做 % 主要是为了避免class文件过于臃肿。 \usepackage{HUSTtils} %\includeonly{body/chap02} % \setcitestyle{authoryear, open={(},close={)}} \usepackage[stable]{footmisc} \usepackage{soul} \newcommand*\red[1]{\textcolor{red}{#1}} % \setul{0.5ex}{0.3ex} \usepackage{xeCJKfntef} \newcommand\redline[1]{\CJKunderline[skip=false,format=\color{red}]{#1}} \usepackage{mathtools} \DeclareMathOperator*{\argmax}{argmax} \DeclareMathOperator*{\argmin}{argmin} \DeclareMathOperator{\trans}{{\mathrm{T}}} \DeclareMathOperator*{\avg}{Avg} \newcommand*\abs[1]{\left \lvert#1 \right \rvert} \newcommand*\norm[1]{\left \lVert #1 \right \rVert} \newcommand\x{\bm{x}} \newcommand\y{\bm{y}} \newcommand\e{\bm{e}} \newcommand\h{\bm{h}} \newcommand\w{\bm{w}} \newcommand\g{\bm{g}} \newcommand\m{\bm{m}} \newcommand\bs{\bm{s}} \newcommand\bp{\bm{p}} \newcommand\brho{\bm{\rho}} \newcommand\bv{\bm{v}} \newcommand\bu{\bm{u}} \newcommand\mathr{\mathbb{R}} \newcommand\mathd{\mathbb{D}} % \usepackage[e]{esvect} % \newcommand{\uv}[2][2mu]{\vec{#2\mkern-#1}\mkern#1} % *** SPECIALIZED LIST PACKAGES *** \usepackage{algorithm, algorithmic} % \newcommand{\algorithmautorefname}{Algorithm} \usepackage{breqn} \usepackage{pifont} \newcommand{\cmark}{\ding{51}} \newcommand{\xmark}{\ding{55}} \newcommand{\rfist}{\ding{192}~} \newcommand{\rsecond}{\ding{193}~} \newcommand{\rthird}{\ding{194}~} \usepackage{marginnote} \usepackage{multirow,makecell} \usepackage{tabularx} % \usepackage{ltablex} %load to using long tabularx % \keepXColumns %solve the problem that tabularx does not fill full textwidth when using ltablex \newcolumntype{Y}{>{\centering\arraybackslash}X} \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} \newcommand\ph{$\phantom{1}$} \newcommand\s{$^\star$} \newlength{\twosubht} \newsavebox{\twosubbox} % 修改autoref前后间距,解决标签应用后的前后间距问题 \usepackage{letltxmacro} \LetLtxMacro\oldautoref\autoref \DeclareRobustCommand{\autoref}[1]{{\let\nobreakspace\space\oldautoref{#1}\space}} \newcommand*\secref[1]{\ref{#1}节} \usepackage{cleveref} \newcommand{\crefrangeconjunction}{~--~} \Crefname{table}{表}{表} \Crefname{figure}{图}{图} % %% using line number. % \usepackage[pagewise]{lineno} % \makeatletter % \def\makeLineNumberLeft{% % \linenumberfont\llap{\hb@xt@\linenumberwidth{\LineNumber\hss}\hskip\linenumbersep}% left line number % \hskip\columnwidth% skip over column of text % \rlap{\hskip\linenumbersep\hb@xt@\linenumberwidth{\hss\LineNumber}}\hss}% right line number % \leftlinenumbers% Re-issue [left] option % \makeatother \begin{document} %定义所有的eps文件在 figures 子目录下 \graphicspath{{figures/}} % 生成封面,版权页,摘要 \frontmatter \input{body/cover} \makecover %目录 \tableofcontents % 对照表 % \include{body/denotation} \mainmatter \raggedbottom %% using line count % \linenumbers % \nolinenumbers %%% 结论 \input{body/chapter/intro.tex} \input{body/chapter/overview.tex} \input{body/chapter/cnn.tex} % \input{body/chapter/univ.tex} %%% 致谢 \include{body/chapter/ack.tex} %%% 参考文献 %Included for Gather Purpose only: %input "ref/refs.bib" % 注意,中文文献需要在bib条目中任意指定language或者langid为chinese \bibliographystyle{HUSTThesis} \bibliography{ref/thesis} % --------------------------------------------- %%% 附录 \begin{appendix} \input{body/appendix/app.tex} \end{appendix} \end{document} ================================================ FILE: ref/finddupls.pl ================================================ #!perl my %seen = (); my $line = 0; open my $B, 'thesis.bib'; while (<$B>) { $line++; # remove all non-alphanumeric characters, because bibtex could have " or { to encapsulate strings etc s/[^a-zA-Z0-9 _-]//ig; # lower-case everything to be case-insensitive # pattern matches lines which start with title $seen{lc($1)} .= "$line," if /^\s*title\s*(.+)$/i; } close $B; # loop through the title and count the number of lines found foreach my $title (keys %seen) { # count number of elements seperated by comma my $num = $seen{$title} =~ tr/,//; print "title '$title' found $num times, lines: ".$seen{$title},"\n" if $num > 1; } # write sorted list into file open my $S, '>sorted_titles.txt'; print $S join("\n", sort keys %seen); close $S; ================================================ FILE: ref/sorted_titles.txt ================================================ a cnntextendashlstm model for gold price time-series forecasting a combination method for interval forecasting of agricultural commodity futures prices a deep learning ensemble approach for crude oil price forecasting a dual-stage attention-based recurrent neural network for time series prediction a fast grid search method in support vector regression forecasting time series a hybrid short-term load forecasting model based on variational mode decomposition and long short-term memory networks considering relevant factors with bayesian optimization algorithm a method of solving a convex programming problem with convergence rate ok2 a new approach of integrating piecewise linear representation and weighted support vector machine for forecasting stock turning points a novel double deep elms ensemble system for time series forecasting a novel framework of reservoir computing for deterministic and probabilistic wind power forecasting a powerful generative model using random weights for the deep image representation a pso and pattern search based memetic algorithm for svms parameters optimization a review of designs and applications of echo state networks a review on neural networks with random weights a short-term traffic flow forecasting method based on the hybrid pso-svr a simulation study of artificial neural networks for nonlinear time-series forecasting a state-of-the-art survey on deep learning theory and architectures a statistical approach to mechanized encoding and searching of literary information a statistical interpretation of term specificity and its application in retrieval a switching delayed pso optimized extreme learning machine for short-term load forecasting adam a method for stochastic optimization adaptive ensemble models of extreme learning machines for time series prediction adaptive methods for short-term electricity load forecasting during covid-19 lockdown in france adaptive nonlinear system identification with echo state networks adaptive subgradient methods for online learning and stochastic optimization algorithmic financial trading with deep convolutional neural networks time series to image conversion approach algorithms for hyper-parameter optimization an approach to reservoir computing design and training an improved analysis of stochastic gradient descent with momentum an information-theoretic perspective of tftextendashidf measures application of echo state networks in short-term electric load forecasting arima forecasting of primary energy demand by fuel in turkey audio texture synthesis with random neural networks improving diversity and quality automatic time series forecasting the forecast package for r autost efficient neural architecture search for spatio-temporal prediction back propagation neural network with adaptive differential evolution algorithm for time series forecasting bohb robust and efficient hyperparameter optimization at scale cnn-based multivariate data analysis for bitcoin trend prediction cntk microsofts open-source deep-learning toolkit comparison of direct and iterative artificial neural network forecast approaches in multi-periodic time series forecasting comprehensive learning particle swarm optimization enabled modeling framework for multi-step-ahead influenza prediction computational methods for inverse problems context dependent recurrent neural network language model convolutional networks for images speech and time series convolutional neural networks for energy time series forecasting convolutional neural networks for time series classification crude oil price forecasting based on internet concern using an extreme learning machine cubic regularization of newton method and its global performance day-ahead building-level load forecasts using deep learning vs traditional time-series techniques decoupled echo state networks with lateral inhibition decoupled weight decay regularization deep convolutional neural networks on multichannel time series for human activity recognition deep learning deep learning for household load forecastingtextemdasha novel pooling deep rnn deep reservoir computing a critical experimental analysis deepar probabilistic forecasting with autoregressive recurrent networks delving deep into rectifiers surpassing human-level performance on imagenet classification design of deep echo state networks designing neural network architectures using reinforcement learning developing a deep learning framework with two-stage feature selection for multivariate financial time series forecasting dstp-rnn a dual-stage two-phase attention-based recurrent neural network for long-term and multivariate time series prediction dynamical regularized echo state network for time series prediction ea-lstm evolutionary attention-based lstm for time series prediction echo state property of deep reservoir computing networks economic hyperparameter optimization with blended search strategy effective electricity energy consumption forecasting using echo state network improved by differential evolution algorithm effective long short-term memory with differential evolution algorithm for electricity price prediction effective long short-term memory with fruit fly optimization algorithm for time series forecasting effective sparse adaboost method with esn and foa for industrial electricity consumption forecasting in china electricity load forecasting using support vector regression with memetic algorithms electricity price and load forecasting using enhanced convolutional neural network and enhanced support vector regression in smart grids empirical mode decomposition based ensemble deep learning for load demand time series forecasting energy forecasting a review and outlook error-feedback stochastic modeling strategy for time series forecasting with convolutional neural networks evolutionary support vector machine for rmb exchange rate forecasting evolutive design of arma and ann models for time series forecasting evolving deep neural networks exponential smoothing the state of the art exponential smoothing the state of the arttextemdash part ii extreme learning machine for multilayer perceptron extreme learning machine for regression and multiclass classification extreme learning machine theory and applications feature selection of autoregressive neural network inputs for trend time series forecasting feed forward neural networks with random weights financial time series forecasting with deep learning a systematic literature review 2005textendash 2019 financial time series prediction using l21rf-elm forecasting across time series databases using recurrent neural networks on groups of similar series a clustering approach forecasting energy consumption and wind power generation using deep echo state network forecasting stock indices with back propagation neural network forecasting structural time series models and the kalman filter forecasting tourism demand with arma-based methods frugal optimization for cost-related hyperparameters functional deep echo state network improved by a bi-level optimization approach for multivariate time series classification global energy forecasting competition 2017 hierarchical probabilistic load forecasting growing echo state network with an inverse-free weight update strategy growing echo-state network with multiple subreservoirs harnessing nonlinearity predicting chaotic systems and saving energy in wireless communication hierarchical representations for efficient architecture search high-dimensional signature compression for large-scale image classification hybrid filtertextendash wrapper feature selection for short-term load forecasting hybrid regularized echo state network for multivariate chaotic time series prediction image classification with the fisher vector theory and practice imagenet a large-scale hierarchical image database imagenet classification with deep convolutional neural networks impact of random weights on nonlinear system identification using convolutional neural networks improved eemd-based crude oil price forecasting using lstm networks insights into randomized algorithms for neural networks practical issues and common pitfalls investigation of diversity strategies in rvfl network ensemble learning for crude oil price forecasting investigation of machine learning techniques in forecasting of blood pressure time series data large-scale image retrieval with compressed fisher vectors learning deep representations via extreme learning machines learning word vectors for sentiment analysis long short-term memory long term time series prediction with multi-input multi-output local learning long-term electricity load forecasting current and future trends long-term prediction of time series by combining direct and mimo strategies making a science of model search hyperparameter optimization in hundreds of dimensions for vision architectures methodology for long-term prediction of time series mlp ensembles improve long term prediction accuracy over single networks model selection beyond the bayesianfrequentist divide modified bbo-based multivariate time-series prediction system with feature subset selection and model parameter optimization multi-reservoir echo state networks with sequence resampling for nonlinear time-series prediction multi-step-ahead time series prediction using multiple-output support vector regression multivariate time series predictor with parameter optimization and feature selection based on modified binary salp swarm algorithm neural architecture search a survey neural machine translation by jointly learning to align and translate nevergrad black-box optimization platform newtons method in general analysis on the convergence of adam and beyond on the convergence rate of training recurrent neural networks on the difficulty of training recurrent neural networks on the importance of initialization and momentum in deep learning on the properties of neural machine translation encodertextendash decoder approaches on-line learning of indoor temperature forecasting models towards energy efficiency optimal deep learning lstm model for electric load forecasting using feature selection and genetic algorithm comparison with machine learning approaches optimizing the echo state network with a binary particle swarm optimization algorithm optuna a next-generation hyperparameter optimization framework particle swarm model selection particle swarm optimization photovoltaic power forecasting based lstm-convolutional network power system load forecasting using mobility optimization and multi-task learning in covid-19 practical bayesian optimization of machine learning algorithms pso-based analysis of echo state network parameters for time series forecasting pso-based growing echo state network pso-mismo modeling strategy for multistep-ahead time series prediction pytorch an imperative style high-performance deep learning library random forest based hourly building energy prediction random search for hyper-parameter optimization randomness in neural networks an overview recent advances in physical reservoir computing a review recurrent neural networks for time series forecasting current status and future directions reducing the dimensionality of data with neural networks regularization incremental extreme learning machine with random reduced kernel for regression reservoir computing approaches to recurrent neural network training robust online time series prediction with recurrent neural networks seasonal forecasting of agricultural commodity price using a hybrid stl and elm method evidence from the vegetable market in china sequence to sequence learning with neural networks short-term electricity load forecasting model based on emd-gru with feature selection short-term load forecasting by using a combined method of convolutional neural networks and fuzzy time series short-term load forecasting of central china based on dpso-lstm short-term load forecasting using general exponential smoothing short-term traffic volume prediction by ensemble learning in concept drifting environments small and multi-peak nonlinear time series forecasting using a hybrid back propagation neural network stacked autoencoder with echo-state regression for tourism demand forecasting using search query data stochastic choice of basis functions in adaptive function approximation and the functional-link net stochastic configuration networks fundamentals and algorithms stochastic gradient descent tricks tensorflow a system for large-scale machine learning the echo state approach to analysing and training recurrent neural networks-with an erratum note the elements of statistical learning data mining inference and prediction the future of time series the holt-winters forecasting procedure the nature of statistical learning theory time series analysis forecasting and control time series forecasting of covid-19 transmission in canada using lstm networks time series forecasting using backpropagation neural networks time series prediction forecasting the future and understanding the past time-series extreme event forecasting with neural networks at uber towards automated deep learning efficient joint neural architecture and hyperparameter search traffic speed prediction and congestion source exploration a deep learning method trend analysis of climate time series a review of methods trend timetextendash series modeling and forecasting with neural networks tune a research platform for distributed model selection and training understanding the difficulty of training deep feedforward neural networks universal approximation using incremental constructive feedforward networks with random hidden nodes very deep convolutional networks for large-scale image recognition wind power forecasting using attention-based gated recurrent unit network ================================================ FILE: ref/thesis.bib ================================================ @phdthesis{lv2019jiyu, title={基于集成回声状态网络的时间序列预测问题研究}, author={吕盛祥}, year={2019}, school={华中科技大学}, langid={chinese} } @phdthesis{hu2021jiyu, title={基于改进回声状态网络的能源预测问题研究}, author={胡焕玲}, year={2021}, school={华中科技大学}, langid={chinese} } @phdthesis{wang2015jiyu, title={基于随机映射神经网络的多元时间序列预测方法研究}, author={王新迎}, year={2015}, school={大连理工大学}, langid={chinese} } @phdthesis{shen2018jiyu, title={基于随机映射神经网络的非线性时间序列建模预测研究}, author={沈力华}, year={2018}, school={华中科技大学}, langid={chinese} } @article{shen2018duoxishu, title={多稀疏回声状态网络预测模型}, author={沈力华 and 陈吉红 and 曾志刚 and 杜宝瑞 and 金健}, journal={控制理论与应用}, volume={35}, number={4}, pages={421--428}, year={2018}, langid={chinese} } @article{shen2017jiyu, title={基于鲁棒极端学习机的混沌时间序列建模预测}, author={沈力华 and 陈吉红 and 曾志刚 and 金健}, journal={物理学报}, volume={66}, number={23}, pages={230501}, year={2017}, language={chinese} } @mastersthesis{fu2021jiyu, title={基于随机向量泛函链接网络的短期电力负荷预测研究}, author={付守浩}, year={2021}, school={南昌大学}, langid={chinese} } @article{li2016juanji, title={卷积神经网络研究综述}, author={李彦冬 and 郝宗波 and 雷航}, journal={计算机应用}, volume={36}, number={9}, pages={2508--2515}, year={2016}, langid={chinese} } @phdthesis{hu2015jiyu, title={基于文化基因算法的电力负荷预测模型及应用研究}, author={胡忠义}, year={2015}, school={华中科技大学}, langid = {chinese}, } @article{yang2018xunhuan, title={循环神经网络研究综述}, author={杨丽 and 吴雨茜 and 王俊丽 and 刘义理}, journal={计算机应用}, volume={38}, number={A02}, pages={1--6}, year={2018}, langid={chinese} } @article{chen2022growing, title = {Growing Echo State Network with an Inverse-Free Weight Update Strategy}, author = {Chen, Xiufang and Luo, Xin and Jin, Long and Li, Shuai and Liu, Mei}, year = {2023}, journal = {IEEE Transactions on Cybernetics}, volume = {53}, number = {2}, pages = {753--764} } @article{liMultireservoir2022, title = {Multi-Reservoir Echo State Networks with Sequence Resampling for Nonlinear Time-Series Prediction}, author = {Li, Ziqiang and Tanaka, Gouhei}, year = {2022}, journal = {Neurocomputing}, volume = {467}, pages = {115--129} } @article{liuPower2022, title = {Power System Load Forecasting Using Mobility Optimization and Multi-Task Learning in {{COVID-19}}}, author = {Liu, Jiefeng and Zhang, Zhenhao and Fan, Xianhao and Zhang, Yiyi and Wang, Jiaqi and Zhou, Ke and Liang, Shuo and Yu, Xiaoyong and Zhang, Wei}, year = {2022}, journal = {Applied Energy}, volume = {310}, pages = {118303} } @article{naModified2022, title = {Modified {{BBO-based}} Multivariate Time-Series Prediction System with Feature Subset Selection and Model Parameter Optimization}, author = {Na, Xiaodong and Han, Min and Ren, Weijie and Zhong, Kai}, year = {2022}, journal = {IEEE Transactions on Cybernetics}, volume = {52}, number = {4}, pages = {2163--2173} } @article{renMultivariate2022, title = {Multivariate Time Series Predictor with Parameter Optimization and Feature Selection Based on Modified Binary Salp Swarm Algorithm}, author = {Ren, Weijie and Ma, Dewei and Han, Min}, year = {2022}, journal = {IEEE Transactions on Industrial Informatics}, pages = {1--10} } @article{bennetNevergrad2021, title = {Nevergrad: Black-Box Optimization Platform}, author = {Bennet, Pauline and Doerr, Carola and Moreau, Antoine and Rapin, Jeremy and Teytaud, Fabien and Teytaud, Olivier}, year = {2021}, journal = {ACM SIGEVOlution}, volume = {14}, number = {1}, pages = {8--15} } @article{cavalliCNNbased2021, title = {{{CNN}}-Based Multivariate Data Analysis for Bitcoin Trend Prediction}, author = {Cavalli, Stefano and Amoretti, Michele}, year = {2021}, journal = {Applied Soft Computing}, volume = {101}, pages = {107065} } @article{hewamalageRecurrent2021, title = {Recurrent {{Neural Networks}} for {{Time Series Forecasting}}: {{Current}} Status and Future Directions}, author = {Hewamalage, Hansika and Bergmeir, Christoph and Bandara, Kasun}, year = {2021}, journal = {International Journal of Forecasting}, volume = {37}, number = {1}, pages = {388--427} } @article{huangFunctional2021, title = {Functional Deep Echo State Network Improved by a Bi-Level Optimization Approach for Multivariate Time Series Classification}, author = {Huang, Zhaoke and Yang, Chunhua and Chen, Xiaofang and Zhou, Xiaojun and Chen, Guo and Huang, Tingwen and Gui, Weihua}, year = {2021}, journal = {Applied Soft Computing}, volume = {106}, pages = {107314} } @article{obstAdaptive2021, title = {Adaptive Methods for Short-Term Electricity Load Forecasting during {{COVID-19}} Lockdown in France}, author = {Obst, David and De Vilmarest, Joseph and Goude, Yannig}, year = {2021}, journal = {IEEE Transactions on Power Systems}, volume = {36}, number = {5}, pages = {4754--4763} } @inproceedings{wuFrugal2021, title = {Frugal Optimization for Cost-Related Hyperparameters}, booktitle = {Proceedings of the {{Thirty-Fifth AAAI Conference}} on {{Artificial Intelligence}}}, author = {Wu, Qingyun and Wang, Chi and Huang, Silu}, year = {2021}, pages = {10347--10354} } @article{yangComprehensive2021, title = {Comprehensive Learning Particle Swarm Optimization Enabled Modeling Framework for Multi-Step-Ahead Influenza Prediction}, author = {Yang, Siyue and Bao, Yukun}, year = {2021}, journal = {Applied Soft Computing}, volume = {113}, pages = {107994} } @inproceedings{yangShortterm2021, title = {Short-Term Load Forecasting of Central China Based on {{DPSO-LSTM}}}, booktitle = {{{IEEE}} 4th {{International Electrical}} and {{Energy Conference}}}, author = {Yang, Jianhua and Zhang, Xinze and Bao, Yukun}, year = {2021}, pages = {1--5} } @article{yuInvestigation2020, title = {Investigation of Diversity Strategies in {{RVFL}} Network Ensemble Learning for Crude Oil Price Forecasting}, author = {Yu, Lean and Wu, Yao and Tang, Ling and Yin, Hang and Lai, Kin Keung}, year = {2021}, journal = {Soft Computing}, volume = {25}, pages = {3609--3622} } @article{zhangErrorfeedback2021, title = {Error-Feedback Stochastic Modeling Strategy for Time Series Forecasting with Convolutional Neural Networks}, author = {Zhang, Xinze and He, Kun and Bao, Yukun}, year = {2021}, journal = {Neurocomputing}, volume = {459}, pages = {234--248} } @article{bandaraForecasting2020, title = {Forecasting across Time Series Databases Using Recurrent Neural Networks on Groups of Similar Series: A Clustering Approach}, author = {Bandara, Kasun and Bergmeir, Christoph and Smyl, Slawek}, year = {2020}, journal = {Expert Systems with Applications}, volume = {140}, pages = {112896} } @article{chimmulaTime2020, title = {Time Series Forecasting of {{COVID}}-19 Transmission in {{Canada}} Using {{LSTM}} Networks}, author = {Chimmula, Vinay Kumar Reddy and Zhang, Lei}, year = {2020}, journal = {Chaos, Solitons \& Fractals}, volume = {135}, pages = {109864} } @article{hongEnergy2020, title = {Energy Forecasting: A Review and Outlook}, author = {Hong, Tao and Pinson, Pierre and Wang, Yi and Weron, Rafa{\l} and Yang, Dazhi and Zareipour, Hamidreza}, year = {2020}, journal = {IEEE Open Access Journal of Power and Energy}, volume = {7}, pages = {376--388} } @article{huForecasting2020, title = {Forecasting Energy Consumption and Wind Power Generation Using Deep Echo State Network}, author = {Hu, Huanling and Wang, Lin and Lv, Sheng-Xiang}, year = {2020}, journal = {Renewable Energy}, volume = {154}, pages = {598--613} } @inproceedings{liAutoST2020, title = {{{AutoST}}: {{Efficient Neural Architecture Search}} for {{Spatio}}-{{Temporal Prediction}}}, booktitle = {Proceedings of the 26th {{ACM SIGKDD International Conference}} on {{Knowledge Discovery}} \& {{Data Mining}}}, author = {Li, Ting and Zhang, Junbo and Bao, Kainan and Liang, Yuxuan and Li, Yexin and Zheng, Yu}, year = {2020}, pages = {794--802} } @article{liuDSTPRNN2020, title = {{{DSTP}}-{{RNN}}: {{A}} Dual-Stage Two-Phase Attention-Based Recurrent Neural Network for Long-Term and Multivariate Time Series Prediction}, author = {Liu, Yeqi and Gong, Chuanyang and Yang, Ling and Chen, Yingyi}, year = {2020}, journal = {Expert Systems with Applications}, volume = {143}, pages = {113082} } @inproceedings{liuImproved2020, title = {An Improved Analysis of Stochastic Gradient Descent with Momentum}, booktitle = {Advances in {{Neural Information Processing Systems}}}, author = {Liu, Yanli and Gao, Yuan and Yin, Wotao}, year = {2020}, pages = {18261--18271} } @article{livieris2020cnn, title = {A {{CNN}}\textendash{{LSTM}} Model for Gold Price Time-Series Forecasting}, author = {Livieris, Ioannis E and Pintelas, Emmanuel and Pintelas, Panagiotis}, year = {2020}, journal = {Neural Computing and Applications}, volume = {32}, pages = {17351--17360} } @article{niuDeveloping2020, title = {Developing a Deep Learning Framework with Two-Stage Feature Selection for Multivariate Financial Time Series Forecasting}, author = {Niu, Tong and Wang, Jianzhou and Lu, Haiyan and Yang, Wendong and Du, Pei}, year = {2020}, journal = {Expert Systems with Applications}, volume = {148}, pages = {113237} } @article{niuWind2020, title = {Wind Power Forecasting Using Attention-Based Gated Recurrent Unit Network}, author = {Niu, Zhewen and Yu, Zeyuan and Tang, Wenhu and Wu, Qinghua and Reformat, Marek}, year = {2020}, journal = {Energy}, volume = {196}, pages = {117081} } @article{pengEffective2020, title = {Effective Long Short-Term Memory with Fruit Fly Optimization Algorithm for Time Series Forecasting}, author = {Peng, Lu and Zhu, Qing and Lv, Sheng-Xiang and Wang, Lin}, year = {2020}, journal = {Soft Computing}, volume = {24}, number = {19}, pages = {15059--15079} } @article{salinasDeepAR2020, title = {{{DeepAR}}: {{Probabilistic}} Forecasting with Autoregressive Recurrent Networks}, author = {Salinas, David and Flunkert, Valentin and Gasthaus, Jan and Januschowski, Tim}, year = {2020}, journal = {International Journal of Forecasting}, volume = {36}, number = {3}, pages = {1181--1191} } @article{sezerFinancial2020, title = {Financial Time Series Forecasting with Deep Learning : {{A}} Systematic Literature Review: 2005\textendash 2019}, author = {Sezer, Omer Berat and Gudelek, Mehmet Ugur and Ozbayoglu, Ahmet Murat}, year = {2020}, journal = {Applied Soft Computing}, volume = {90}, pages = {106181} } @article{sunReview2020, title = {A Review of Designs and Applications of Echo State Networks}, author = {Sun, Chenxi and Song, Moxian and Hong, Shenda and Li, Hongyan}, year = {2020}, journal = {CoRR}, volume = {abs/2012.02974} } @inproceedings{wangEconomic2020, title = {Economic Hyperparameter Optimization with Blended Search Strategy}, booktitle = {International {{Conference}} on {{Learning Representations}}}, author = {Wang, Chi and Wu, Qingyun and Huang, Silu and Saied, Amin}, year = {2020} } @article{wangNovel2020, title = {A {{Novel Framework}} of {{Reservoir Computing}} for {{Deterministic}} and {{Probabilistic Wind Power Forecasting}}}, author = {Wang, J. and Niu, T. and Lu, H. and Yang, W. and Du, P.}, year = {2020}, journal = {IEEE Transactions on Sustainable Energy}, volume = {11}, number = {1}, pages = {337--349} } @inproceedings{akibaOptuna2019, title = {Optuna: A next-Generation Hyperparameter Optimization Framework}, booktitle = {Proceedings of the 25th {{ACM SIGKDD International Conference}} on {{Knowledge Discovery}} \& {{Data Mining}}}, author = {Akiba, Takuya and Sano, Shotaro and Yanase, Toshihiko and Ohta, Takeru and Koyama, Masanori}, year = {2019}, pages = {2623--2631} } @inproceedings{allen-zhuConvergence2019, title = {On the Convergence Rate of Training Recurrent Neural Networks}, booktitle = {Advances in {{Neural Information Processing Systems}}}, author = {{Allen-Zhu}, Zeyuan and Li, Yuanzhi and Song, Zhao}, year = {2019}, pages = {6673--6685} } @article{alomStateoftheart2019, title = {A State-of-the-Art Survey on Deep Learning Theory and Architectures}, author = {Alom, Md Zahangir and Taha, Tarek M and Yakopcic, Chris and Westberg, Stefan and Sidike, Paheding and Nasrin, Mst Shamima and Hasan, Mahmudul and Van Essen, Brian C and Awwal, Abdul AS and Asari, Vijayan K}, year = {2019}, journal = {Electronicsweek}, volume = {8}, number = {3}, pages = {292} } @inproceedings{antogniniAudio2019, title = {Audio Texture Synthesis with Random Neural Networks: {{Improving}} Diversity and Quality}, booktitle = {{{IEEE International Conference}} on {{Acoustics}}, {{Speech}} and {{Signal Processing}}}, author = {Antognini, Joseph M and Hoffman, Matt and Weiss, Ron J}, year = {2019}, pages = {3587--3591} } @article{caiDayahead2019, title = {Day-Ahead Building-Level Load Forecasts Using Deep Learning vs. {{Traditional}} Time-Series Techniques}, author = {Cai, Mengmeng and Pipattanasomporn, Manisa and Rahman, Saifur}, year = {2019}, journal = {Applied Energy}, volume = {236}, pages = {1078--1088} } @article{elskenNeural2019a, title = {Neural Architecture Search: {{A}} Survey}, author = {Elsken, Thomas and Metzen, Jan Hendrik and Hutter, Frank}, year = {2019}, journal = {Journal of Machine Learning Research}, volume = {20}, pages = {1--21} } @article{fuEvolutionary2019, title = {Evolutionary Support Vector Machine for {{RMB}} Exchange Rate Forecasting}, author = {Fu, Sibao and Li, Yongwu and Sun, Shaolong and Li, Hongtao}, year = {2019}, journal = {Physica A: Statistical Mechanics and its Applications}, volume = {521}, pages = {692--704} } @article{gaoShortTerm2019, title = {Short-{{Term Electricity Load Forecasting Model Based}} on {{EMD}}-{{GRU}} with {{Feature Selection}}}, author = {Gao, Xin and Li, Xiaobing and Zhao, Bing and Ji, Weijia and Jing, Xiao and He, Yang}, year = {2019}, journal = {Energies}, volume = {12}, number = {6}, pages = {1140} } @article{heHybrid2019, title = {A Hybrid Short-Term Load Forecasting Model Based on Variational Mode Decomposition and Long Short-Term Memory Networks Considering Relevant Factors with Bayesian Optimization Algorithm}, author = {He, Feifei and Zhou, Jianzhong and Feng, Zhong-kai and Liu, Guangbiao and Yang, Yuqi}, year = {2019}, journal = {Applied Energy}, volume = {237}, pages = {103--116} } @article{hongGlobal2019, title = {Global Energy Forecasting Competition 2017: Hierarchical Probabilistic Load Forecasting}, author = {Hong, Tao and Xie, Jingrui and Black, Jonathan}, year = {2019}, journal = {International Journal of Forecasting}, volume = {35}, number = {4}, pages = {1389--1399} } @article{liEALSTM2019, title = {{{EA-LSTM}}: Evolutionary Attention-Based {{LSTM}} for Time Series Prediction}, author = {Li, Youru and Zhu, Zhenfeng and Kong, Deqiang and Han, Hua and Zhao, Yao}, year = {2019}, journal = {Knowledge-Based Systems}, volume = {181}, pages = {104785} } @article{lindbergLongterm2019, title = {Long-Term Electricity Load Forecasting: {{Current}} and Future Trends}, author = {Lindberg, K. B. and Seljom, P. and Madsen, H. and Fischer, D. and Korp{\aa}s, M.}, year = {2019}, journal = {Utilities Policy}, volume = {58}, pages = {102--119} } @article{liPSObased2019, title = {{{PSO}}-Based Growing Echo State Network}, author = {Li, Ying and Li, Fanjun}, year = {2019}, journal = {Applied Soft Computing}, volume = {85}, pages = {105774} } @inproceedings{loshchilovDecoupled2019, title = {Decoupled Weight Decay Regularization}, booktitle = {International {{Conference}} on {{Learning Representations}}}, author = {Loshchilov, Ilya and Hutter, Frank}, year = {2019} } @inproceedings{masumInvestigation2019, title = {Investigation of {{Machine Learning Techniques}} in {{Forecasting}} of {{Blood Pressure Time Series Data}}}, booktitle = {Artificial {{Intelligence XXXVI}} - 39th {{SGAI International Conference}} on {{Artificial Intelligence}}}, author = {Masum, Shamsul and Chiverton, John P. and Liu, Ying and Vuksanovic, Branislav}, year = {2019}, pages = {269--282} } @incollection{miikkulainenChapter2019, title = {Evolving Deep Neural Networks}, booktitle = {Artificial {{Intelligence}} in the {{Age}} of {{Neural Networks}} and {{Brain Computing}}}, author = {Miikkulainen, Risto and Liang, Jason and Meyerson, Elliot and Rawal, Aditya and Fink, Daniel and Francon, Olivier and Raju, Bala and Shahrzad, Hormoz and Navruzyan, Arshak and Duffy, Nigel and Hodjat, Babak}, year = {2019}, pages = {293--312} } @article{mudelseeTrend2019, title = {Trend Analysis of Climate Time Series: {{A}} Review of Methods}, author = {Mudelsee, Manfred}, year = {2019}, journal = {Earth-Science Reviews}, volume = {190}, pages = {310--322} } @inproceedings{paszkePytorch2019, title = {Pytorch: {{An}} Imperative Style, High-Performance Deep Learning Library}, booktitle = {Advances in {{Neural Information Processing Systems}}}, author = {Paszke, Adam and Gross, Sam and Massa, Francisco and Lerer, Adam and Bradbury, James and Chanan, Gregory and Killeen, Trevor and Lin, Zeming and Gimelshein, Natalia and Antiga, Luca and others}, year = {2019}, pages = {8026--8037} } @article{sadaei2019short, title = {Short-Term Load Forecasting by Using a Combined Method of Convolutional Neural Networks and Fuzzy Time Series}, author = {Sadaei, Hossein Javedani and {e Silva}, Petr{\^o}nio C{\^a}ndido de Lima and Guimar{\~a}es, Frederico Gadelha and Lee, Muhammad Hisyam}, year = {2019}, journal = {Energy}, volume = {175}, pages = {365--377} } @article{tanakaRecent2019, title = {Recent Advances in Physical Reservoir Computing: {{A}} Review}, author = {Tanaka, Gouhei and Yamane, Toshiyuki and H{\'e}roux, Jean Benoit and Nakane, Ryosho and Kanazawa, Naoki and Takeda, Seiji and Numata, Hidetoshi and Nakano, Daiju and Hirose, Akira}, year = {2019}, journal = {Neural Networks}, volume = {115}, pages = {100--123} } @article{tangNew2019, title = {A New Approach of Integrating Piecewise Linear Representation and Weighted Support Vector Machine for Forecasting Stock Turning Points}, author = {Tang, Huimin and Dong, Peiwu and Shi, Yong}, year = {2019}, journal = {Applied Soft Computing}, volume = {78}, pages = {685--696} } @article{wangPhotovoltaic2019, title = {Photovoltaic Power Forecasting Based {{LSTM}}-{{Convolutional Network}}}, author = {Wang, Kejun and Qi, Xiaoxia and Liu, Hongda}, year = {2019}, journal = {Energy}, volume = {189}, pages = {116225} } @article{wuImproved2019, title = {Improved {{EEMD}}-Based Crude Oil Price Forecasting Using {{LSTM}} Networks}, author = {Wu, Yu-Xi and Wu, Qing-Biao and Zhu, Jia-Qi}, year = {2019}, journal = {Physica A: Statistical Mechanics and its Applications}, volume = {516}, pages = {114--124} } @article{xiaoShortterm2019, title = {Short-Term Traffic Volume Prediction by Ensemble Learning in Concept Drifting Environments}, author = {Xiao, Jianhua and Xiao, Zhu and Wang, Dong and Bai, Jing and Havyarimana, Vincent and Zeng, Fanzi}, year = {2019}, journal = {Knowledge-Based Systems}, volume = {164}, pages = {213--225} } @article{xu2019hybrid, title = {Hybrid Regularized Echo State Network for Multivariate Chaotic Time Series Prediction}, author = {Xu, Meiling and Han, Min and Qiu, Tie and Lin, Hongfei}, year = {2019}, journal = {IEEE Transactions on Cybernetics}, volume = {49}, number = {6}, pages = {2305--2315} } @article{yangDynamical2019, title = {Dynamical Regularized Echo State Network for Time Series Prediction}, author = {Yang, Cuili and Qiao, Junfei and Wang, Lei and Zhu, Xinxin}, year = {2019}, journal = {Neural Computing and Applications}, volume = {31}, number = {10}, pages = {6781--6794} } @article{yuImpact2019, title = {Impact of Random Weights on Nonlinear System Identification Using Convolutional Neural Networks}, author = {Yu, Wen and Pacheco, Mario}, year = {2019}, journal = {Information Sciences}, volume = {477}, pages = {1--14} } @article{zahidElectricity2019, title = {Electricity {{Price}} and {{Load Forecasting}} Using {{Enhanced Convolutional Neural Network}} and {{Enhanced Support Vector Regression}} in {{Smart Grids}}}, author = {Zahid, Maheen and Ahmed, Fahad and Javaid, Nadeem and Abbasi, Raza Abid and Zainab Kazmi, Hafiza Syeda and Javaid, Atia and Bilal, Muhammad and Akbar, Mariam and Ilahi, Manzoor}, year = {2019}, journal = {Electronicsweek}, volume = {8}, number = {2}, pages = {122} } @article{bouktifOptimal2018, title = {Optimal {{Deep Learning LSTM Model}} for {{Electric Load Forecasting}} Using {{Feature Selection}} and {{Genetic Algorithm}}: {{Comparison}} with {{Machine Learning Approaches}}}, author = {Bouktif, Salah and Fiaz, Ali and Ouni, Ali and Serhani, Mohamed Adel}, year = {2018}, journal = {Energies}, volume = {11}, number = {7}, pages = {1636} } @article{caoReview2018, title = {A Review on Neural Networks with Random Weights}, author = {Cao, Weipeng and Wang, Xizhao and Ming, Zhong and Gao, Jinzhu}, year = {2018}, journal = {Neurocomputing}, volume = {275}, pages = {278--287} } @article{dongSmall2018, title = {Small and Multi-Peak Nonlinear Time Series Forecasting Using a Hybrid Back Propagation Neural Network}, author = {Dong, Xuefan and Lian, Ying and Liu, Yijun}, year = {2018}, journal = {Information Sciences}, volume = {424}, pages = {39--54} } @inproceedings{falknerBOHB2018, title = {{{BOHB}}: Robust and Efficient Hyperparameter Optimization at Scale}, booktitle = {International {{Conference}} on {{Machine Learning}}}, author = {Falkner, Stefan and Klein, Aaron and Hutter, Frank}, year = {2018}, pages = {1437--1446} } @article{gallicchioDesign2018, title = {Design of Deep Echo State Networks}, author = {Gallicchio, Claudio and Micheli, Alessio and Pedrelli, Luca}, year = {2018}, journal = {Neural Networks}, volume = {108}, pages = {33--47} } @inproceedings{koprinskaConvolutional2018, title = {Convolutional {{Neural Networks}} for {{Energy Time Series Forecasting}}}, booktitle = {International {{Joint Conference}} on {{Neural Networks}}}, author = {Koprinska, I. and Wu, D. and Wang, Z.}, year = {2018}, pages = {1--8} } @inproceedings{liawTune2018, title = {Tune: A Research Platform for Distributed Model Selection and Training}, booktitle = {International {{Conference}} on {{Machine Learning}}}, author = {Liaw, Richard and Liang, Eric and Nishihara, Robert and Moritz, Philipp and Gonzalez, Joseph E and Stoica, Ion}, year = {2018} } @inproceedings{liuHierarchical2018a, title = {Hierarchical Representations for Efficient Architecture Search}, booktitle = {International {{Conference}} on {{Learning Representations}}}, author = {Liu, Hanxiao and Simonyan, Karen and Vinyals, Oriol and Fernando, Chrisantha and Kavukcuoglu, Koray}, year = {2018} } @article{lv2018stacked, title = {Stacked Autoencoder with Echo-State Regression for Tourism Demand Forecasting Using Search Query Data}, author = {Lv, Sheng-Xiang and Peng, Lu and Wang, Lin}, year = {2018}, journal = {Applied Soft Computing}, volume = {73}, pages = {119--133} } @article{pengEffective2018, title = {Effective Long Short-Term Memory with Differential Evolution Algorithm for Electricity Price Prediction}, author = {Peng, Lu and Liu, Shan and Liu, Rui and Wang, Lin}, year = {2018}, journal = {Energy}, volume = {162}, pages = {1301--1314} } @inproceedings{reddiConvergence2018, title = {On the Convergence of Adam and Beyond}, booktitle = {International {{Conference}} on {{Learning Representations}}}, author = {Reddi, Sashank J and Kale, Satyen and Kumar, Sanjiv}, year = {2018} } @article{sezer2018algorithmic, title = {Algorithmic Financial Trading with Deep Convolutional Neural Networks: Time Series to Image Conversion Approach}, author = {Sezer, Omer Berat and Ozbayoglu, Ahmet Murat}, year = {2018}, journal = {Applied Soft Computing}, volume = {70}, pages = {525--538} } @article{shiDeep2018, title = {Deep {{Learning}} for {{Household Load Forecasting}}\textemdash{{A Novel Pooling Deep RNN}}}, author = {Shi, Heng and Xu, Minghao and Li, Ran}, year = {2018}, journal = {IEEE Transactions on Smart Grid}, volume = {9}, number = {5}, pages = {5271--5280} } @article{wang2018crude, title = {Crude Oil Price Forecasting Based on Internet Concern Using an Extreme Learning Machine}, author = {Wang, Jue and Athanasopoulos, George and Hyndman, Rob J and Wang, Shouyang}, year = {2018}, journal = {International Journal of Forecasting}, volume = {34}, number = {4}, pages = {665--677} } @article{wang2018effective, title = {Effective Sparse Adaboost Method with {{ESN}} and {{FOA}} for Industrial Electricity Consumption Forecasting in China}, author = {Wang, Lin and Lv, Sheng-Xiang and Zeng, Yu-Rong}, year = {2018}, journal = {Energy}, volume = {155}, pages = {1013--1031} } @article{wangEffective2018, title = {Effective Electricity Energy Consumption Forecasting Using Echo State Network Improved by Differential Evolution Algorithm}, author = {Wang, Lin and Hu, Huanling and Ai, Xue-Yi and Liu, Hua}, year = {2018}, journal = {Energy}, volume = {153}, pages = {801--815} } @article{wangRandom2018, title = {Random {{Forest}} Based Hourly Building Energy Prediction}, author = {Wang, Zeyu and Wang, Yueren and Zeng, Ruochen and Srinivasan, Ravi S. and Ahrentzen, Sherry}, year = {2018}, journal = {Energy and Buildings}, volume = {171}, pages = {11--25} } @book{weigend2018time, title = {Time Series Prediction: Forecasting the Future and Understanding the Past}, author = {Weigend, Andreas S}, year = {2018} } @article{xiongSeasonal2018, title = {Seasonal Forecasting of Agricultural Commodity Price Using a Hybrid {{STL}} and {{ELM}} Method: {{Evidence}} from the Vegetable Market in {{China}}}, author = {Xiong, Tao and Li, Chongguang and Bao, Yukun}, year = {2018}, journal = {Neurocomputing}, volume = {275}, pages = {2831--2844} } @article{xueFinancial2018, title = {Financial Time Series Prediction Using {{L2}},{{1RF}}-{{ELM}}}, author = {Xue, Jingming and Zhou, SiHang and Liu, Qiang and Liu, Xinwang and Yin, Jianping}, year = {2018}, journal = {Neurocomputing}, volume = {277}, pages = {176--186} } @inproceedings{zela2018towards, title = {Towards Automated Deep Learning: Efficient Joint Neural Architecture and Hyperparameter Search}, booktitle = {International {{Conference}} on {{Machine Learning Workshop}} on {{AutoML}}}, author = {Zela, Arber and Klein, Aaron and Falkner, Stefan and Hutter, Frank}, year = {2018} } @article{zhouRegularization2018, title = {Regularization Incremental Extreme Learning Machine with Random Reduced Kernel for Regression}, author = {Zhou, Zhiyu and Chen, Ji and Zhu, Zefei}, year = {2018}, journal = {Neurocomputing}, volume = {321}, pages = {72--81} } @inproceedings{bakerDesigning2017, title = {Designing Neural Network Architectures Using Reinforcement Learning}, booktitle = {International {{Conference}} on {{Learning Representations}}}, author = {Baker, Bowen and Gupta, Otkrist and Naik, Nikhil and Raskar, Ramesh}, year = {2017} } @article{chouikhiPSObased2017, title = {{{PSO}}-Based Analysis of {{Echo State Network}} Parameters for Time Series Forecasting}, author = {Chouikhi, Naima and Ammar, Boudour and Rokbani, Nizar and Alimi, Adel M.}, year = {2017}, journal = {Applied Soft Computing}, volume = {55}, pages = {211--225} } @article{gallicchioDeep2017, title = {Deep Reservoir Computing: A Critical Experimental Analysis}, author = {Gallicchio, Claudio and Micheli, Alessio and Pedrelli, Luca}, year = {2017}, journal = {Neurocomputing}, volume = {268}, pages = {87--99} } @article{gallicchioEcho2017, title = {Echo State Property of Deep Reservoir Computing Networks}, author = {Gallicchio, Claudio and Micheli, Alessio}, year = {2017}, journal = {Cognitive Computation}, volume = {9}, number = {3}, pages = {337--350} } @article{krizhevskyImagenet2017, title = {Imagenet Classification with Deep Convolutional Neural Networks}, author = {Krizhevsky, Alex and Sutskever, Ilya and Hinton, Geoffrey E}, year = {2017}, journal = {Communications of the ACM}, volume = {60}, number = {6}, pages = {84--90} } @inproceedings{laptevTimeseries2017, title = {Time-Series Extreme Event Forecasting with Neural Networks at Uber}, booktitle = {International {{Conference}} on {{Machine Learning}}}, author = {Laptev, Nikolay and Yosinski, Jason and Li, Li Erran and Smyl, Slawek}, year = {2017}, pages = {1--5} } @article{liInsights2017, title = {Insights into Randomized Algorithms for Neural Networks: Practical Issues and Common Pitfalls}, author = {Li, Ming and Wang, Dianhui}, year = {2017}, journal = {Information Sciences}, volume = {382--383}, pages = {170--178} } @article{qiaoGrowing2017, title = {Growing Echo-State Network with Multiple Subreservoirs}, author = {Qiao, J. and Li, F. and Han, H. and Li, W.}, year = {2017}, journal = {IEEE Transactions on Neural Networks and Learning Systems}, volume = {28}, number = {2}, pages = {391--404} } @inproceedings{qinDualstage2017, title = {A Dual-Stage Attention-Based Recurrent Neural Network for Time Series Prediction}, booktitle = {Proceedings of the {{Twenty-Sixth International Joint Conference}} on {{Artificial Intelligence}}}, author = {Qin, Yao and Song, Dongjin and Chen, Haifeng and Cheng, Wei and Jiang, Guofei and Cottrell, Garrison W.}, year = {2017}, pages = {2627--2633} } @article{qiuEmpirical2017, title = {Empirical Mode Decomposition Based Ensemble Deep Learning for Load Demand Time Series Forecasting}, author = {Qiu, Xueheng and Ren, Ye and Suganthan, Ponnuthurai Nagaratnam and Amaratunga, Gehan A. J.}, year = {2017}, journal = {Applied Soft Computing}, volume = {54}, pages = {246--255} } @article{scardapaneRandomness2017, title = {Randomness in Neural Networks: An Overview}, author = {Scardapane, Simone and Wang, Dianhui}, year = {2017}, journal = {Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery}, volume = {7}, number = {2}, pages = {e1200} } @article{songNovel2017, title = {A Novel Double Deep {{ELMs}} Ensemble System for Time Series Forecasting}, author = {Song, Gang and Dai, Qun}, year = {2017}, journal = {Knowledge-Based Systems}, volume = {134}, pages = {31--49} } @article{wang2017stochastic, title = {Stochastic Configuration Networks: Fundamentals and Algorithms}, author = {Wang, Dianhui and Li, Ming}, year = {2017}, journal = {IEEE Transactions on Cybernetics}, volume = {47}, number = {10}, pages = {3466--3479} } @article{zengSwitching2017, title = {A Switching Delayed {{PSO}} Optimized Extreme Learning Machine for Short-Term Load Forecasting}, author = {Zeng, Nianyin and Zhang, Hong and Liu, Weibo and Liang, Jinling and Alsaadi, Fuad E.}, year = {2017}, journal = {Neurocomputing}, volume = {240}, pages = {175--182} } @article{zhao2017convolutional, title = {Convolutional Neural Networks for Time Series Classification}, author = {Zhao, Bendong and Lu, Huanzhang and Chen, Shangfeng and Liu, Junliang and Wu, Dongya}, year = {2017}, journal = {Journal of Systems Engineering and Electronics}, volume = {28}, number = {1}, pages = {162--169} } @article{zhaoDeep2017, title = {A Deep Learning Ensemble Approach for Crude Oil Price Forecasting}, author = {Zhao, Yang and Li, Jianping and Yu, Lean}, year = {2017}, journal = {Energy Economics}, volume = {66}, pages = {9--16} } @inproceedings{abadiTensorflow2016, title = {Tensorflow: {{A}} System for Large-Scale Machine Learning}, booktitle = {12th {{USENIX Symposium}} on {{Operating Systems Design}} and {{Implementation}}}, author = {Abadi, Mart{\'i}n and Barham, Paul and Chen, Jianmin and Chen, Zhifeng and Davis, Andy and Dean, Jeffrey and Devin, Matthieu and Ghemawat, Sanjay and Irving, Geoffrey and Isard, Michael and others}, year = {2016}, pages = {265--283} } @inproceedings{crone2016feature, title = {Feature Selection of Autoregressive Neural Network Inputs for Trend Time Series Forecasting}, booktitle = {International {{Joint Conference}} on {{Neural Networks}}}, author = {Crone, Sven F and H{\"a}ger, Stephan}, year = {2016}, pages = {1515--1522} } @inproceedings{guo2016robust, title = {Robust Online Time Series Prediction with Recurrent Neural Networks}, booktitle = {{{IEEE International Conference}} on {{Data Science}} and {{Advanced Analytics}}}, author = {Guo, Tian and Xu, Zhao and Yao, Xin and Chen, Haifeng and Aberer, Karl and Funaya, Koichi}, year = {2016}, pages = {816--825} } @inproceedings{hePowerful2016, title = {A Powerful Generative Model Using Random Weights for the Deep Image Representation}, booktitle = {Advances in {{Neural Information Processing Systems}}}, author = {He, Kun and Wang, Yan and Hopcroft, John}, year = {2016}, pages = {631--639} } @article{huShortterm2016, title = {A Short-Term Traffic Flow Forecasting Method Based on the Hybrid {{PSO}}-{{SVR}}}, author = {Hu, Wenbin and Yan, Liping and Liu, Kaizeng and Wang, Huan}, year = {2016}, journal = {Neural Processing Letters}, volume = {43}, number = {1}, pages = {155--172} } @inproceedings{seideCNTK2016, title = {{{CNTK}}: Microsoft's Open-Source Deep-Learning Toolkit}, booktitle = {Proceedings of the 22nd {{ACM SIGKDD International Conference}} on {{Knowledge Discovery}} and {{Data Mining}}}, author = {Seide, Frank and Agarwal, Amit}, year = {2016}, pages = {2135--2135} } @article{tangExtreme2016, title = {Extreme {{Learning Machine}} for {{Multilayer Perceptron}}}, author = {Tang, J. and Deng, C. and Huang, G.}, year = {2016}, journal = {IEEE Transactions on Neural Networks and Learning Systems}, volume = {27}, number = {4}, pages = {809--821} } @inproceedings{wangTraffic2016, title = {Traffic Speed Prediction and Congestion Source Exploration: {{A}} Deep Learning Method}, booktitle = {{{IEEE}} 16th {{International Conference}} on {{Data Mining}}}, author = {Wang, J. and Gu, Q. and Wu, J. and Liu, G. and Xiong, Z.}, year = {2016}, pages = {499--508} } @inproceedings{bahdanauNeural2015, title = {Neural Machine Translation by Jointly Learning to Align and Translate}, booktitle = {International {{Conference}} on {{Learning Representations}}}, author = {Bahdanau, Dzmitry and Cho, KyungHyun and Bengio, Yoshua}, year = {2015} } @book{boxTime2011, title = {Time Series Analysis: Forecasting and Control}, author = {Box, George EP and Jenkins, Gwilym M and Reinsel, Gregory C}, year = {2015} } @inproceedings{heDelving2015, title = {Delving Deep into Rectifiers: {{Surpassing}} Human-Level Performance on Imagenet Classification}, booktitle = {Proceedings of the {{IEEE International Conference}} on {{Computer Vision}}}, author = {He, Kaiming and Zhang, Xiangyu and Ren, Shaoqing and Sun, Jian}, year = {2015}, pages = {1026--1034} } @article{huHybrid2015, title = {Hybrid Filter\textendash Wrapper Feature Selection for Short-Term Load Forecasting}, author = {Hu, Zhongyi and Bao, Yukun and Xiong, Tao and Chiong, Raymond}, year = {2015}, journal = {Engineering Applications of Artificial Intelligence}, volume = {40}, pages = {17--27} } @inproceedings{kingmaAdam2015, title = {Adam: A Method for Stochastic Optimization}, booktitle = {International {{Conference}} on {{Learning Representations}}}, author = {Kingma, Diederik P and Ba, Jimmy}, year = {2015} } @article{lecunDeep2015, title = {Deep Learning}, author = {LeCun, Yann and Bengio, Yoshua and Hinton, Geoffrey}, year = {2015}, journal = {Nature}, volume = {521}, number = {7553}, pages = {436--444} } @inproceedings{simonyanVery2015, title = {Very Deep Convolutional Networks for Large-Scale Image Recognition}, booktitle = {International {{Conference}} on {{Learning Representations}}}, author = {Simonyan, Karen and Zisserman, Andrew}, year = {2015} } @article{wangBack2015, title = {Back Propagation Neural Network with Adaptive Differential Evolution Algorithm for Time Series Forecasting}, author = {Wang, Lin and Zeng, Yi and Chen, Tao}, year = {2015}, journal = {Expert Systems with Applications}, volume = {42}, number = {2}, pages = {855--863} } @article{wangOptimizing2015, title = {Optimizing the Echo State Network with a Binary Particle Swarm Optimization Algorithm}, author = {Wang, Heshan and Yan, Xuefeng}, year = {2015}, journal = {Knowledge-Based Systems}, volume = {86}, pages = {182--193} } @article{xiongCombination2015, title = {A Combination Method for Interval Forecasting of Agricultural Commodity Futures Prices}, author = {Xiong, Tao and Li, Chongguang and Bao, Yukun and Hu, Zhongyi and Zhang, Lu}, year = {2015}, journal = {Knowledge-Based Systems}, volume = {77}, pages = {92--102} } @inproceedings{yang2015deep, title = {Deep Convolutional Neural Networks on Multichannel Time Series for Human Activity Recognition}, booktitle = {Proceedings of the {{Twenty-Fourth International Joint Conference}} on {{Artificial Intelligence}}}, author = {Yang, Jianbo and Nguyen, Minh Nhut and San, Phyo Phyo and Li, Xiao Li and Krishnaswamy, Shonali}, year = {2015}, pages = {3995--4001} } @article{yuLearning2015, title = {Learning Deep Representations via Extreme Learning Machines}, author = {Yu, Wenchao and Zhuang, Fuzhen and He, Qing and Shi, Zhongzhi}, year = {2015}, journal = {Neurocomputing}, volume = {149}, pages = {308--315} } @article{baoMultistepahead2014, title = {Multi-Step-Ahead Time Series Prediction Using Multiple-Output Support Vector Regression}, author = {Bao, Yukun and Xiong, Tao and Hu, Zhongyi}, year = {2014}, journal = {Neurocomputing}, volume = {129}, pages = {482--493} } @article{baoPSOMISMO2014, title = {{{PSO}}-{{MISMO Modeling Strategy}} for {{MultiStep}}-{{Ahead Time Series Prediction}}}, author = {Bao, Yukun and Xiong, Tao and Hu, Zhongyi}, year = {2014}, journal = {IEEE Transactions on Cybernetics}, volume = {44}, number = {5}, pages = {655--668} } @article{choProperties2014, title = {On the Properties of Neural Machine Translation: Encoder\textendash Decoder Approaches}, author = {Cho, Kyunghyun and {van Merri{\"e}nboer}, Bart and Bahdanau, Dzmitry and Bengio, Yoshua}, year = {2014}, journal = {Proceedings of SSST EMNLP 2014, Eighth Workshop on Syntax, Semantics and Structure in Statistical Translation}, pages = {103--111} } @inproceedings{sutskeverSequence2014, title = {Sequence to Sequence Learning with Neural Networks}, booktitle = {Advances in {{Neural Information Processing Systems}}}, author = {Sutskever, Ilya and Vinyals, Oriol and Le, Quoc V.}, year = {2014}, pages = {3104--3112} } @article{zamora-martinezOnline2014, title = {On-Line Learning of Indoor Temperature Forecasting Models towards Energy Efficiency}, author = {{Zamora-Mart{\'i}nez}, F. and Romeu, P. and {Botella-Rocamora}, P. and Pardo, J.}, year = {2014}, journal = {Energy and Buildings}, volume = {83}, pages = {162--172} } @article{baoPSO2013, title = {A {{PSO}} and Pattern Search Based Memetic Algorithm for {{SVMs}} Parameters Optimization}, author = {Bao, Yukun and Hu, Zhongyi and Xiong, Tao}, year = {2013}, journal = {Neurocomputing}, volume = {117}, pages = {98--106} } @inproceedings{bergstraMaking2013, title = {Making a Science of Model Search: Hyperparameter Optimization in Hundreds of Dimensions for Vision Architectures}, booktitle = {International {{Conference}} on {{Machine Learning}}}, author = {Bergstra, James and Yamins, Daniel and Cox, David}, year = {2013}, pages = {115--123} } @article{ferreiraApproach2013, title = {An Approach to Reservoir Computing Design and Training}, author = {Ferreira, Aida A. and Ludermir, Teresa B. and {de Aquino}, Ronaldo R. B.}, year = {2013}, journal = {Expert Systems with Applications}, volume = {40}, number = {10}, pages = {4172--4182} } @article{huElectricity2013, title = {Electricity Load Forecasting Using Support Vector Regression with Memetic Algorithms}, author = {Hu, Zhongyi and Bao, Yukun and Xiong, Tao}, year = {2013}, journal = {The Scientific World Journal}, volume = {2013}, pages = {292575} } @inproceedings{pascanuDifficulty2013, title = {On the Difficulty of Training Recurrent Neural Networks}, booktitle = {International {{Conference}} on {{Machine Learning}}}, author = {Pascanu, Razvan and Mikolov, Tomas and Bengio, Yoshua}, year = {2013}, pages = {1310--1318} } @article{sanchezImage2013, title = {Image Classification with the Fisher Vector: Theory and Practice}, author = {S{\'a}nchez, Jorge and Perronnin, Florent and Mensink, Thomas and Verbeek, Jakob}, year = {2013}, journal = {International Journal of Computer Vision}, volume = {105}, number = {3}, pages = {222--245} } @inproceedings{sutskeverImportance2013, title = {On the Importance of Initialization and Momentum in Deep Learning}, booktitle = {International {{Conference}} on {{Machine Learning}}}, author = {Sutskever, Ilya and Martens, James and Dahl, George and Hinton, Geoffrey}, year = {2013}, pages = {1139--1147} } @book{vapnikNature2013, title = {The Nature of Statistical Learning Theory}, author = {Vapnik, Vladimir}, year = {2013} } @article{bergstraRandom2012, title = {Random Search for Hyper-Parameter Optimization}, author = {Bergstra, James and Bengio, Yoshua}, year = {2012}, journal = {Journal of Machine Learning Research}, volume = {13}, number = {2} } @incollection{bottouStochastic2012, title = {Stochastic Gradient Descent Tricks}, booktitle = {Neural {{Networks}}: {{Tricks}} of the {{Trade}}: {{Second Edition}}}, author = {Bottou, L{\'e}on}, year = {2012}, volume = {7700}, pages = {421--436} } @article{deihimiApplication2012, title = {Application of Echo State Networks in Short-Term Electric Load Forecasting}, author = {Deihimi, Ali and Showkati, Hemen}, year = {2012}, journal = {Energy}, volume = {39}, number = {1}, pages = {327--340} } @article{floresEvolutive2012, title = {Evolutive Design of {{ARMA}} and {{ANN}} Models for Time Series Forecasting}, author = {Flores, Juan J. and Graff, Mario and Rodriguez, Hector}, year = {2012}, journal = {Renewable Energy}, volume = {44}, pages = {225--230} } @article{huangExtreme2012, title = {Extreme {{Learning Machine}} for {{Regression}} and {{Multiclass Classification}}}, author = {Huang, Guang-Bin and Zhou, Hongming and Ding, Xiaojian and Zhang, Rui}, year = {2012}, journal = {IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics)}, volume = {42}, number = {2}, pages = {513--529} } @inproceedings{mikolovContext2012, title = {Context Dependent Recurrent Neural Network Language Model}, booktitle = {{{IEEE Spoken Language Technology Workshop}}}, author = {Mikolov, Tomas and Zweig, Geoffrey}, year = {2012}, pages = {234--239} } @inproceedings{snoekPractical2012, title = {Practical Bayesian Optimization of Machine Learning Algorithms}, booktitle = {Advances in {{Neural Information Processing Systems}}}, author = {Snoek, Jasper and Larochelle, Hugo and Adams, Ryan P}, year = {2012}, pages = {2960--2968} } @article{adeodatoMLP2011, title = {{{MLP}} Ensembles Improve Long Term Prediction Accuracy over Single Networks}, author = {Adeodato, Paulo J. L. and Arnaud, Adrian L. and Vasconcelos, Germano C. and Cunha, Rodrigo C. L. V. and Monteiro, Domingos S. M. P.}, year = {2011}, journal = {International Journal of Forecasting}, volume = {27}, number = {3}, pages = {661--671} } @inproceedings{bergstraAlgorithms2011, title = {Algorithms for Hyper-Parameter Optimization}, booktitle = {Advances in {{Neural Information Processing Systems}}}, author = {Bergstra, James and Bardenet, R{\'e}mi and Bengio, Yoshua and K{\'e}gl, Bal{\'a}zs}, year = {2011}, pages = {2546--2554} } @article{duchiAdaptive2011, title = {Adaptive Subgradient Methods for Online Learning and Stochastic Optimization}, author = {Duchi, John and Hazan, Elad and Singer, Yoram}, year = {2011}, journal = {Journal of Machine Learning Research}, volume = {12}, number = {7}, pages = {2121--2159} } @inproceedings{maasLearning2011, title = {Learning Word Vectors for Sentiment Analysis}, booktitle = {Proceedings of the 49th {{Annual Meeting}} of the {{Association}} for {{Computational Linguistics}}: {{Human Language Technologies}}}, author = {Maas, Andrew and Daly, Raymond E and Pham, Peter T and Huang, Dan and Ng, Andrew Y and Potts, Christopher}, year = {2011}, pages = {142--150} } @inproceedings{sanchezHighdimensional2011, title = {High-Dimensional Signature Compression for Large-Scale Image Classification}, booktitle = {{{IEEE Conference}} on {{Computer Vision}} and {{Pattern Recognition}}}, author = {S{\'a}nchez, Jorge and Perronnin, Florent}, year = {2011}, pages = {1665--1672} } @article{wangForecasting2011, title = {Forecasting Stock Indices with Back Propagation Neural Network}, author = {Wang, Jian-Zhou and Wang, Ju-Jie and Zhang, Zhe-George and Guo, Shu-Po}, year = {2011}, journal = {Expert Systems with Applications}, volume = {38}, number = {11}, pages = {14346--14355} } @inproceedings{glorotUnderstanding2010, title = {Understanding the Difficulty of Training Deep Feedforward Neural Networks}, booktitle = {Proceedings of the {{Thirteenth International Conference}} on {{Artificial Intelligence}} and {{Statistics}}}, author = {Glorot, Xavier and Bengio, Yoshua}, year = {2010}, pages = {249--256} } @article{guyonModel2010, title = {Model Selection: Beyond the Bayesian/Frequentist Divide}, author = {Guyon, Isabelle and Saffari, Amir and Dror, Gideon and Cawley, Gavin}, year = {2010}, journal = {Journal of Machine Learning Research}, volume = {11}, pages = {61--87} } @inproceedings{perronninLargescale2010, title = {Large-Scale Image Retrieval with Compressed Fisher Vectors}, booktitle = {{{IEEE Computer Society Conference}} on {{Computer Vision}} and {{Pattern Recognition}}}, author = {Perronnin, Florent and Liu, Yan and S{\'a}nchez, Jorge and Poirier, Herv{\'e}}, year = {2010}, pages = {3384--3391} } @article{chuForecasting2009, title = {Forecasting Tourism Demand with {{ARMA-based}} Methods}, author = {Chu, Fong-Lin}, year = {2009}, journal = {Tourism Management}, volume = {30}, number = {5}, pages = {740--751} } @inproceedings{dengImageNet2009, title = {{{ImageNet}}: A Large-Scale Hierarchical Image Database}, booktitle = {{{IEEE Conference}} on {{Computer Vision}} and {{Pattern Recognition}}}, author = {Deng, Jia and Dong, Wei and Socher, Richard and Li, Li-Jia and Li, Kai and {Fei-Fei}, Li}, year = {2009}, pages = {248--255} } @article{escalanteParticle2009, title = {Particle Swarm Model Selection}, author = {Escalante, Hugo Jair and Montes, Manuel and Sucar, Luis Enrique}, year = {2009}, journal = {Journal of Machine Learning Research}, volume = {10}, pages = {405--440} } @article{hamzacebiComparison2009, title = {Comparison of Direct and Iterative Artificial Neural Network Forecast Approaches in Multi-Periodic Time Series Forecasting}, author = {Hamza{\c c}ebi, Co{\c s}kun and Akay, Diyar and Kutay, Fevzi}, year = {2009}, journal = {Expert Systems with Applications}, volume = {36}, number = {2}, pages = {3839--3844} } @book{hastieElements2009, title = {The Elements of Statistical Learning: Data Mining, Inference, and Prediction}, author = {Hastie, Trevor and Tibshirani, Robert and Friedman, Jerome H and Friedman, Jerome H}, year = {2009}, volume = {2} } @article{lukovsevivcius2009reservoir, title = {Reservoir Computing Approaches to Recurrent Neural Network Training}, author = {Luko{\v s}evi{\v c}ius, Mantas and Jaeger, Herbert}, year = {2009}, journal = {Computer Science Review}, volume = {3}, number = {3}, pages = {127--149} } @inproceedings{taiebLongterm2009, title = {Long-Term Prediction of Time Series by Combining Direct and {{MIMO}} Strategies}, booktitle = {International {{Joint Conference}} on {{Neural Networks}}}, author = {Taieb, S. B. and Bontempi, G. and Sorjamaa, A. and Lendasse, A.}, year = {2009}, pages = {3054--3061} } @inproceedings{vanheeswijkAdaptive2009, title = {Adaptive {{Ensemble Models}} of {{Extreme Learning Machines}} for {{Time Series Prediction}}}, booktitle = {Proceedings of the 19th {{International Conference}} on {{Artificial Neural Networks}}}, author = {{van Heeswijk}, Mark and Miche, Yoan and {Lindh-Knuutila}, Tiina and Hilbers, Peter A. J. and Honkela, Timo and Oja, Erkki and Lendasse, Amaury}, year = {2009}, pages = {305--314} } @inproceedings{bontempiLong2008, title = {Long Term Time Series Prediction with Multi-Input Multi-Output Local Learning}, booktitle = {Proceedings of the 2nd {{European Symposium}} on {{Time Series Prediction}} ({{TSP}})}, author = {Bontempi, Gianluca}, year = {2008}, pages = {145--154} } @article{hyndmanAutomatic2008, title = {Automatic Time Series Forecasting: The Forecast Package for {{R}}}, author = {Hyndman, Rob J and Khandakar, Yeasmin}, year = {2008}, journal = {Journal of Statistical Software}, volume = {27}, pages = {1--22} } @article{qi2008trend, title = {Trend Time\textendash Series Modeling and Forecasting with Neural Networks}, author = {Qi, M. and Zhang, G. P.}, year = {2008}, journal = {IEEE Transactions on Neural Networks}, volume = {19}, number = {5}, pages = {808--816} } @article{edigerARIMA2007, title = {{{ARIMA}} Forecasting of Primary Energy Demand by Fuel in Turkey}, author = {Ediger, Volkan {\c S}. and Akar, Serta{\c c}}, year = {2007}, journal = {Energy Policy}, volume = {35}, number = {3}, pages = {1701--1708} } @article{sorjamaaMethodology2007, title = {Methodology for Long-Term Prediction of Time Series}, author = {Sorjamaa, Antti and Hao, Jin and Reyhani, Nima and Ji, Yongnan and Lendasse, Amaury}, year = {2007}, journal = {Neurocomputing}, volume = {70}, number = {16}, pages = {2861--2869} } @article{xueDecoupled2007, title = {Decoupled Echo State Networks with Lateral Inhibition}, author = {Xue, Yanbo and Yang, Le and Haykin, Simon}, year = {2007}, journal = {Neural Networks}, volume = {20}, number = {3}, pages = {365--376} } @inproceedings{baoFast2006, title = {A Fast Grid Search Method in Support Vector Regression Forecasting Time Series}, booktitle = {International {{Conference}} on {{Intelligent Data Engineering}} and {{Automated Learning}}}, author = {Bao, Yukun and Liu, Zhitao}, year = {2006}, pages = {504--511} } @article{gardnerExponential2006, title = {Exponential Smoothing: The State of the Art\textemdash Part {{II}}}, author = {Gardner, Everette S.}, year = {2006}, journal = {International Journal of Forecasting}, volume = {22}, number = {4}, pages = {637--666} } @article{hintonReducing2006, title = {Reducing the Dimensionality of Data with Neural Networks}, author = {Hinton, Geoffrey E and Salakhutdinov, Ruslan R}, year = {2006}, journal = {Science}, volume = {313}, number = {5786}, pages = {504--507} } @article{huang2006universal, title = {Universal Approximation Using Incremental Constructive Feedforward Networks with Random Hidden Nodes}, author = {Huang, Guang-Bin and Chen, Lei and Siew, Chee Kheong and others}, year = {2006}, journal = {IEEE Transactions on Neural Networks}, volume = {17}, number = {4}, pages = {879--892} } @article{huangExtreme2006, title = {Extreme Learning Machine: {{Theory}} and Applications}, author = {Huang, Guang-Bin and Zhu, Qin-Yu and Siew, Chee-Kheong}, year = {2006}, journal = {Neurocomputing}, volume = {70}, number = {1}, pages = {489--501} } @article{nesterovCubic2006, title = {Cubic Regularization of Newton Method and Its Global Performance}, author = {Nesterov, Yurii and Polyak, B.T.}, year = {2006}, journal = {Mathematical Programming}, volume = {108}, number = {1}, pages = {177--205} } @article{jaegerHarnessing2004, title = {Harnessing Nonlinearity: Predicting Chaotic Systems and Saving Energy in Wireless Communication}, author = {Jaeger, Herbert and Haas, Harald}, year = {2004}, journal = {Science}, volume = {304}, number = {5667}, pages = {78--80} } @article{jonesStatistical1972, title = {A Statistical Interpretation of Term Specificity and Its Application in Retrieval}, author = {Jones, Karen Sparck}, year = {2004}, journal = {Journal of Documentation}, volume = {60}, number = {5}, pages = {493--502} } @article{aizawaInformationtheoretic2003, title = {An Information-Theoretic Perspective of {{TF}}\textendash{{IDF}} Measures}, author = {Aizawa, Akiko}, year = {2003}, journal = {Information Processing \& Management}, volume = {39}, number = {1}, pages = {45--65} } @inproceedings{jaegerAdaptive2002, title = {Adaptive Nonlinear System Identification with Echo State Networks}, booktitle = {Advances in {{Neural Information Processing Systems}}}, author = {Jaeger, Herbert}, year = {2002}, pages = {593--600} } @book{vogel2002computational, title = {Computational Methods for Inverse Problems}, author = {Vogel, Curtis R}, year = {2002} } @article{jaegerEcho2001, title = {The ``Echo State'' Approach to Analysing and Training Recurrent Neural Networks-with an Erratum Note}, author = {Jaeger, Herbert}, year = {2001}, journal = {Bonn, Germany: German National Research Center for Information Technology GMD Technical Report}, volume = {148}, number = {34}, pages = {13} } @article{zhangSimulation2001, title = {A Simulation Study of Artificial Neural Networks for Nonlinear Time-Series Forecasting}, author = {Zhang, G. Peter and Patuwo, B. Eddy and Hu, Michael Y.}, year = {2001}, journal = {Computers \& Operations Research}, volume = {28}, number = {4}, pages = {381--396} } @article{hochreiterLong1997, title = {Long Short-Term Memory}, author = {Hochreiter, Sepp and Schmidhuber, J{\"u}rgen}, year = {1997}, journal = {Neural Computation}, volume = {9}, number = {8}, pages = {1735--1780} } @article{igelnik1995stochastic, title = {Stochastic Choice of Basis Functions in Adaptive Function Approximation and the Functional-Link Net}, author = {Igelnik, Boris and Pao, Yoh-Han}, year = {1995}, journal = {IEEE Transactions on Neural Networks}, volume = {6}, number = {6}, pages = {1320--1329} } @inproceedings{kennedyParticle1995, title = {Particle Swarm Optimization}, booktitle = {International {{Conference}} on {{Neural Networks}}}, author = {Kennedy, James and Eberhart, Russell}, year = {1995}, volume = {4}, pages = {1942--1948} } @article{lecun1995convolutional, title = {Convolutional Networks for Images, Speech, and Time Series}, author = {LeCun, Yann and Bengio, Yoshua and others}, year = {1995}, journal = {The Handbook of Brain Theory and Neural Networks}, volume = {3361}, number = {10}, pages = {1995} } @book{gershenfeldFuture1993, title = {The Future of Time Series}, author = {Gershenfeld, Neil A and Weigend, Andreas S}, year = {1993} } @inproceedings{schmidt1992feed, title = {Feed Forward Neural Networks with Random Weights}, booktitle = {International {{Conference}} on {{Pattern Recognition}}}, author = {Schmidt, Wouter F and Kraaijveld, Martin A and Duin, Robert PW and others}, year = {1992}, pages = {1} } @article{wongTime1991, title = {Time Series Forecasting Using Backpropagation Neural Networks}, author = {Wong, F. S.}, year = {1991}, journal = {Neurocomputing}, volume = {2}, number = {4}, pages = {147--159} } @book{harveyForecasting1990, title = {Forecasting, Structural Time Series Models and the {{Kalman}} Filter}, author = {Harvey, Andrew C}, year = {1990} } @article{gardnerjrExponential1985, title = {Exponential Smoothing: {{The}} State of the Art}, author = {Gardner Jr, Everette S}, year = {1985}, journal = {Journal of Forecasting}, volume = {4}, number = {1}, pages = {1--28} } @inproceedings{nesterovMethod1983a, title = {A Method of Solving a Convex Programming Problem with Convergence Rate {{O}}(K{$^2$})}, booktitle = {Doklady {{Akademii Nauk}}}, author = {Nesterov, Yurii Evgen'evich}, year = {1983}, volume = {269}, pages = {543--547} } @article{chatfieldHoltwinters1978, title = {The Holt-Winters Forecasting Procedure}, author = {Chatfield, Chris}, year = {1978}, journal = {Journal of the Royal Statistical Society: Series C (Applied Statistics)}, volume = {27}, number = {3}, pages = {264--279} } @article{christiaanseShortTerm1971, title = {Short-Term Load Forecasting Using General Exponential Smoothing}, author = {Christiaanse, W. R.}, year = {1971}, journal = {IEEE Transactions on Power Apparatus and Systems}, volume = {PAS-90}, number = {2}, pages = {900--911} } @article{luhnStatistical1957, title = {A Statistical Approach to Mechanized Encoding and Searching of Literary Information}, author = {Luhn, Hans Peter}, year = {1957}, journal = {IBM Journal of research and development}, volume = {1}, number = {4}, pages = {309--317} } @article{bennettNewton1916, title = {Newton's Method in General Analysis}, author = {Bennett, Albert A}, year = {1916}, journal = {Proceedings of the National Academy of Sciences}, volume = {2}, number = {10}, pages = {592--598} }